Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
AbstractLayout.hpp
Go to the documentation of this file.
1#ifndef LIBS_GUI_ABSTRACTLAYOUT_HPP_
2#define LIBS_GUI_ABSTRACTLAYOUT_HPP_
3
7
8#include <vector>
9
11{
12public:
13 static constexpr iv::types::padding kPaddingDefault = 5;
14
15 struct SComponentsBox final
16 {
17 SComponentsBox(AbstractComponentGUI *components, bool expand, bool fill, iv::types::padding padding);
19
22 bool m_fill;
24 };
25
27 {
28 bool m_isExpand {true};
30
31 std::vector<std::shared_ptr<SComponentsBox>> m_componentsAtStart {};
32 std::vector<std::shared_ptr<SComponentsBox>> m_componentsAtEnd {};
33 };
34
36 ~AbstractLayout() override = default;
37
38 void addStart(AbstractComponentGUI *components) const;
39 void addStart(AbstractComponentGUI *components, bool expand, bool fill,
41 void addEnd(AbstractComponentGUI *components) const;
42 void addEnd(AbstractComponentGUI *components, bool expand, bool fill,
44
45 virtual void addStartLabeled(AbstractComponentGUI *components, std::string_view label) = 0;
46
49 void setCompact(bool isCompact) const;
50 void setPadding(iv::types::padding padding) const;
51
53 void emplaceListenerShortClick(std::function<void(CEventClick *evtClick)> clickFunctionCall);
55 bool hasListenersShortClick() const;
56
57 void addListenerLongClick(IListenerClick **listener);
58 void emplaceListenerLongClick(std::function<void(CEventClick *evtClick)> clickFunctionCall);
60 bool hasListenersLongClick() const;
61
62protected:
63 virtual IWidget *createLayout() = 0;
64 IWidget *createWidget(CDialog *dialogFatherRef) override;
65
66private:
67 void prvProcessCloseChildren() override;
68
69 std::vector<IListenerClick *> m_listenersShortClick;
70 std::vector<IListenerClick *> m_listenersLongClick;
71 std::shared_ptr<SAbstractLayoutData> m_abstractLayoutData;
72};
73
74#endif /* LIBS_GUI_ABSTRACTLAYOUT_HPP_ */
Definition AbstractComponentGUI.hpp:30
Definition AbstractLayout.hpp:11
std::shared_ptr< SAbstractLayoutData > m_abstractLayoutData
Definition AbstractLayout.hpp:71
std::vector< IListenerClick * > m_listenersLongClick
Definition AbstractLayout.hpp:70
void emplaceListenerLongClick(std::function< void(CEventClick *evtClick)> clickFunctionCall)
Definition AbstractLayout.cpp:325
IWidget * createWidget(CDialog *dialogFatherRef) override
Definition AbstractLayout.cpp:374
void addEnd(AbstractComponentGUI *components) const
Definition AbstractLayout.cpp:183
void addListenerLongClick(IListenerClick **listener)
Definition AbstractLayout.cpp:318
AbstractLayout()
Definition AbstractLayout.cpp:147
void runListenersShortClick()
Definition AbstractLayout.cpp:300
bool hasListenersLongClick() const
Definition AbstractLayout.cpp:345
std::vector< IListenerClick * > m_listenersShortClick
Definition AbstractLayout.hpp:69
virtual void addStartLabeled(AbstractComponentGUI *components, std::string_view label)=0
void setVAlignmentComponents(CEnumComponentsGUI::EAlignmentVertical alignment)
Definition AbstractLayout.cpp:224
void emplaceListenerShortClick(std::function< void(CEventClick *evtClick)> clickFunctionCall)
Agrega un IListenerClick formado mediante una función lambda.
Definition AbstractLayout.cpp:293
~AbstractLayout() override=default
void addStart(AbstractComponentGUI *components) const
Definition AbstractLayout.cpp:161
void prvProcessCloseChildren() override
Definition AbstractLayout.cpp:398
virtual IWidget * createLayout()=0
void addListenerShortClick(IListenerClick **listener)
Definition AbstractLayout.cpp:281
static constexpr iv::types::padding kPaddingDefault
Definition AbstractLayout.hpp:13
void setHAlignmentComponents(CEnumComponentsGUI::EAlignmentHorizontal alignment)
Definition AbstractLayout.cpp:207
bool hasListenersShortClick() const
Definition AbstractLayout.cpp:313
void setPadding(iv::types::padding padding) const
Definition AbstractLayout.cpp:252
void runListenersLongClick()
Definition AbstractLayout.cpp:332
void setCompact(bool isCompact) const
Definition AbstractLayout.cpp:242
Definition CDialog.hpp:21
EAlignmentHorizontal
Definition CEnumComponentsGUI.hpp:8
EAlignmentVertical
Definition CEnumComponentsGUI.hpp:16
Definition CEventClick.hpp:9
Definition IListenerClick.hpp:7
Definition IWidget.hpp:5
double padding
Definition types.hpp:16
Definition AbstractLayout.hpp:27
bool m_isExpand
Definition AbstractLayout.hpp:28
iv::types::padding m_paddingDefault
Definition AbstractLayout.hpp:29
std::vector< std::shared_ptr< SComponentsBox > > m_componentsAtEnd
Definition AbstractLayout.hpp:32
std::vector< std::shared_ptr< SComponentsBox > > m_componentsAtStart
Definition AbstractLayout.hpp:31
Definition AbstractLayout.hpp:16
iv::types::padding m_padding
Definition AbstractLayout.hpp:23
AbstractComponentGUI * m_component
Definition AbstractLayout.hpp:20
SComponentsBox(AbstractComponentGUI *components, bool expand, bool fill, iv::types::padding padding)
Definition AbstractLayout.cpp:127
bool m_fill
Definition AbstractLayout.hpp:22
~SComponentsBox()
Definition AbstractLayout.cpp:138
bool m_expand
Definition AbstractLayout.hpp:21