TDME2  1.9.200
GUIContextMenuController.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 context menu controller
27  * @author Andreas Drewke
28  */
30  : public GUIElementController
31 {
32  friend class GUIContextMenu;
34 
35 private:
40  vector<GUIContextMenuItemController*> menuItemControllers;
43 
44 private:
45  // forbid class copy
47 
48  /**
49  * Private constructor
50  * @param node node
51  */
53 
54  /**
55  * @return menu open state
56  */
57  bool isOpen();
58 
59  /**
60  * Determine menu item controllers
61  */
63 
64  /**
65  * Unselect selection
66  */
67  void unselectSelection();
68 
69  /**
70  * Select first menu item
71  */
72  void selectFirst();
73 
74  /**
75  * Select next menu item
76  */
77  void selectNext();
78 
79  /**
80  * Select previous menu item
81  */
82  void selectPrevious();
83 
84  /**
85  * Handle current menu item keyboard event
86  * @param event event
87  */
89 
90 public:
91  // overridden methods
92  void initialize() override;
93  void dispose() override;
94  void postLayout() override;
95  void handleMouseEvent(GUINode* node, GUIMouseEvent* event) override;
96  void handleKeyboardEvent(GUIKeyboardEvent* event) override;
97  void tick() override;
98  void onFocusGained() override;
99  void onFocusLost() override;
100  bool hasValue() override;
101  const MutableString& getValue() override;
102  void setValue(const MutableString& value) override;
103  void onSubTreeChange() override;
104 
105 };
static STATIC_DLL_IMPEXT string CONDITION_UNSELECTED
void initialize() override
Initialize controller after element has been created.
void handleKeyboardEvent(GUIKeyboardEvent *event) override
Handle keyboard event.
void handleCurrentMenuItemKeyboardEvent(GUIKeyboardEvent *event)
Handle current menu item keyboard event.
void determineMenuItemControllers()
Determine menu item controllers.
void setValue(const MutableString &value) override
Set value.
void handleMouseEvent(GUINode *node, GUIMouseEvent *event) override
Handle mouse event.
void tick() override
Tick method will be executed once per frame.
GUIContextMenuController(GUINode *node)
Private constructor.
vector< GUIContextMenuItemController * > menuItemControllers
GUI context menu element.
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