TDME2  1.9.200
GUIDropDownController.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 #include <vector>
5 
6 #include <tdme/tdme.h>
12 
13 using std::string;
14 using std::vector;
15 
24 
25 /**
26  * GUI drop down controller
27  * @author Andreas Drewke
28  */
30  : public GUIElementController
31 {
32  friend class GUIDropDown;
34 
35 private:
40  vector<GUIDropDownOptionController*> dropDownOptionControllers;
41  bool open;
42  bool disabled;
44  GUIElementNode* arrowNode { nullptr };
47  string search;
50 
51 private:
52  // forbid class copy
54 
55  /**
56  * Private constructor
57  * @param node node
58  */
60 
61  /**
62  * @return drop down open state
63  */
64  bool isOpen();
65 
66  /**
67  * Unselect
68  */
69  void unselect();
70 
71  /**
72  * Select by index
73  * @param idx index
74  */
75  void select(int idx);
76 
77  /**
78  * Select by option element node
79  * @param selectedDropDownOptionElementNode selected drop down option element node
80  */
81  void select(GUIElementNode* selectedDropDownOptionElementNode);
82 
83  /**
84  * Toggle open state
85  */
86  void toggleOpenState();
87 
88  /**
89  * Determine drop down option controllers
90  */
92 
93  /**
94  * Select next node
95  */
96  void selectNext();
97 
98  /**
99  * Select previous
100  */
101  void selectPrevious();
102 
103  /**
104  * Select last
105  */
106  void selectLast();
107 
108  /**
109  * Do search
110  */
111  void doSearch();
112 
113 public:
114  // overridden methods
115  bool isDisabled() override;
116  void setDisabled(bool disabled) override;
117  void initialize() override;
118  void dispose() override;
119  void postLayout() override;
120  void handleMouseEvent(GUINode* node, GUIMouseEvent* event) override;
121  void handleKeyboardEvent(GUIKeyboardEvent* event) override;
122  void tick() override;
123  void onFocusGained() override;
124  void onFocusLost() override;
125  bool hasValue() override;
126  const MutableString& getValue() override;
127  void setValue(const MutableString& value) override;
128  void onSubTreeChange() override;
129 
130 };
void dispose() override
Dispose controller.
static STATIC_DLL_IMPEXT string CONDITION_CLOSED
void postLayout() override
Post layout event.
void initialize() override
Initialize controller after element has been created.
void handleKeyboardEvent(GUIKeyboardEvent *event) override
Handle keyboard event.
void setValue(const MutableString &value) override
Set value.
void handleMouseEvent(GUINode *node, GUIMouseEvent *event) override
Handle mouse event.
vector< GUIDropDownOptionController * > dropDownOptionControllers
void tick() override
Tick method will be executed once per frame.
GUIDropDownController(GUINode *node)
Private constructor.
void determineDropDownOptionControllers()
Determine drop down option controllers.
static STATIC_DLL_IMPEXT string CONDITION_DISABLED
static STATIC_DLL_IMPEXT string CONDITION_ENABLED
void setDisabled(bool disabled) override
Set disabled.
void onSubTreeChange() override
On sub tree change.
static STATIC_DLL_IMPEXT string CONDITION_OPENED
GUI drop down element.
Definition: GUIDropDown.h:27
GUI node controller base class.
GUI node base class.
Definition: GUINode.h:64
GUI parent node base class thats supporting child nodes.
Definition: GUIParentNode.h:42
Mutable utf8 aware string class.
Definition: MutableString.h:23
#define STATIC_DLL_IMPEXT
Definition: tdme.h:15
#define FORBID_CLASS_COPY(CLASS)
Definition: tdme.h:6