Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CContainerWithButtons.hpp
Go to the documentation of this file.
1#ifndef LIBS_PANELS_CCONTAINERWITHBUTTONS_HPP_
2#define LIBS_PANELS_CCONTAINERWITHBUTTONS_HPP_
3
4#include "core/color.hpp"
5#include "core/memOps.hpp"
6#include "math/structs.hpp"
7#include "ui/gui/CButton.hpp"
11
12#include <optional>
13#include <string>
14#include <vector>
15
17{
18public:
19 virtual ~ICreatorPanel() = default;
20
22};
23
25{
26public:
27 enum class AlignButtons
28 {
31 };
32
33 explicit CContainerWithButtons(AlignButtons alignButtons, bool isChangeColor = false,
35 iv::types::color colorUnselected = iv::color::Undefined);
37 ~CContainerWithButtons() override;
38
40
41 void addButton(const std::string &txtButton, ICreatorPanel **creatorPanel, bool isSelected = false);
42 void addButtonWithImage(const iv::ui::resources::ImageResource &resource, const std::string &txtButton,
43 ICreatorPanel **creatorPanel, bool isSelected = false);
44 void unSelectAll();
45 void panelBreakDown(AbstractComponentGUI **buttons, AbstractComponentGUI **containerLayout);
46 void updateColor();
47 [[nodiscard]] bool getIsColorChange() const;
48
50 {
51 SPrvButtonContainer(const std::string &nameButton,
52 const std::optional<iv::ui::resources::ImageResource> &resourceOpt,
53 ICreatorPanel **creatorPanel, bool isSelected)
54 {
55 m_nameButton = nameButton;
56 m_imageResourceOpt = resourceOpt;
57 m_isSelected = isSelected;
58 m_creatorPanel = iv::assignPtrNoNull(creatorPanel);
59 m_buttonRef = nullptr;
60 }
61
63 {
64 delete m_creatorPanel;
65 m_creatorPanel = nullptr;
66 }
67
68 std::string m_nameButton;
69 std::optional<iv::ui::resources::ImageResource> m_imageResourceOpt;
73 };
74
75 uint8_t m_marginButtons {4};
76 bool m_expandButtons {false};
77 std::optional<iv::math::geometry::Area> m_minOptionButtonSize {std::nullopt};
78
79private:
82
84 std::vector<SPrvButtonContainer *> *m_buttons;
88};
89
90#endif /* LIBS_PANELS_CCONTAINERWITHBUTTONS_HPP_ */
Definition AbstractComponentGUI.hpp:30
Definition CButton.hpp:18
Definition CContainerWithButtons.hpp:25
CContainerWithButtons(AlignButtons alignButtons, bool isChangeColor=false, iv::types::color colorSelected=iv::color::Undefined, iv::types::color colorUnselected=iv::color::Undefined)
Definition CContainerWithButtons.cpp:40
bool m_isColorChange
Definition CContainerWithButtons.hpp:85
void addButton(const std::string &txtButton, ICreatorPanel **creatorPanel, bool isSelected=false)
Definition CContainerWithButtons.cpp:79
AlignButtons
Definition CContainerWithButtons.hpp:28
std::vector< SPrvButtonContainer * > * m_buttons
Definition CContainerWithButtons.hpp:84
CLayoutContainer * prvPanelContainerLayout()
Definition CContainerWithButtons.cpp:117
~CContainerWithButtons() override
Definition CContainerWithButtons.cpp:58
uint32_t m_colorUnselected
Definition CContainerWithButtons.hpp:87
AlignButtons m_alignButtons
Definition CContainerWithButtons.hpp:83
CContainerWithButtons & operator=(CContainerWithButtons &)=delete
void unSelectAll()
Definition CContainerWithButtons.cpp:50
void updateColor()
Definition CContainerWithButtons.cpp:69
bool m_expandButtons
Definition CContainerWithButtons.hpp:76
CContainerWithButtons(const CContainerWithButtons &)=delete
std::optional< iv::math::geometry::Area > m_minOptionButtonSize
Definition CContainerWithButtons.hpp:77
uint8_t m_marginButtons
Definition CContainerWithButtons.hpp:75
AbstractComponentGUI * prvPanelButtons(CLayoutContainer *containerLayout)
Definition CContainerWithButtons.cpp:132
void panelBreakDown(AbstractComponentGUI **buttons, AbstractComponentGUI **containerLayout)
Definition CContainerWithButtons.cpp:100
bool getIsColorChange() const
Definition CContainerWithButtons.cpp:64
void addButtonWithImage(const iv::ui::resources::ImageResource &resource, const std::string &txtButton, ICreatorPanel **creatorPanel, bool isSelected=false)
Definition CContainerWithButtons.cpp:87
uint32_t m_colorSelected
Definition CContainerWithButtons.hpp:86
Definition CLayoutContainer.hpp:7
Definition CContainerWithButtons.hpp:17
virtual ~ICreatorPanel()=default
virtual AbstractComponentGUI * panel()=0
Definition IDataPanel.hpp:5
Definition ImageResource.hpp:15
constexpr iv::types::color Undefined
Definition color.hpp:228
uint32_t color
Definition types.hpp:12
T * assignPtrNoNull(T **ptr)
Definition memOps.hpp:31
Definition CContainerWithButtons.hpp:50
CButton * m_buttonRef
Definition CContainerWithButtons.hpp:71
std::optional< iv::ui::resources::ImageResource > m_imageResourceOpt
Definition CContainerWithButtons.hpp:69
SPrvButtonContainer(const std::string &nameButton, const std::optional< iv::ui::resources::ImageResource > &resourceOpt, ICreatorPanel **creatorPanel, bool isSelected)
Definition CContainerWithButtons.hpp:51
~SPrvButtonContainer()
Definition CContainerWithButtons.hpp:62
std::string m_nameButton
Definition CContainerWithButtons.hpp:68
bool m_isSelected
Definition CContainerWithButtons.hpp:72
ICreatorPanel * m_creatorPanel
Definition CContainerWithButtons.hpp:70