//================================================================================================ /// @file WorkingSetSelectorComponent.hpp /// /// @brief Defines a GUI component allow selecting the active working set. /// @author Adrian Del Grosso /// /// @copyright 2023 Adrian Del Grosso //================================================================================================ #ifndef WORKING_SET_SELECTOR_COMPONENT_HPP #define WORKING_SET_SELECTOR_COMPONENT_HPP #include "WorkingSetComponent.hpp" #include "isobus/isobus/isobus_virtual_terminal_server_managed_working_set.hpp" #include "JuceHeader.h" #include class ServerMainComponent; class WorkingSetSelectorComponent : public Component { public: explicit WorkingSetSelectorComponent(ServerMainComponent &server); void update_drawn_working_sets(std::vector> &managedWorkingSetList); void paint(Graphics &g) override; void resized() override; void mouseUp(const MouseEvent &event) override; void redraw(); private: struct SELECTOR_CHILD_OBJECTS_STRUCT { std::shared_ptr workingSet; std::vector> childComponents; }; std::vector children; ServerMainComponent &parentServer; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(WorkingSetSelectorComponent) }; #endif // WORKING_SET_SELECTOR_COMPONENT_HPP