TDME2 1.9.121
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GUICheckboxController.cpp
Go to the documentation of this file.
2
3#include <tdme/tdme.h>
11#include <tdme/gui/GUI.h>
14
23using tdme::gui::GUI;
26
27string GUICheckboxController::CONDITION_CHECKED = "checked";
28string GUICheckboxController::CONDITION_UNCHECKED = "unchecked";
29string GUICheckboxController::CONDITION_DISABLED = "disabled";
30string GUICheckboxController::CONDITION_ENABLED = "enabled";
31
32GUICheckboxController::GUICheckboxController(GUINode* node)
34{
35 this->checked = required_dynamic_cast<GUIElementNode*>(node)->isSelected();
36 this->disabled = required_dynamic_cast<GUIElementNode*>(node)->isDisabled();
37}
38
40{
41 return checked;
42}
43
45{
46 auto& nodeConditions = required_dynamic_cast<GUIElementNode*>(node)->getActiveConditions();
47 nodeConditions.remove(this->checked == true?CONDITION_CHECKED:CONDITION_UNCHECKED);
48 this->checked = checked;
49 nodeConditions.add(this->checked == true?CONDITION_CHECKED:CONDITION_UNCHECKED);
50}
51
53{
54 return disabled;
55}
56
58{
59 auto& nodeConditions = required_dynamic_cast<GUIElementNode*>(node)->getActiveConditions();
60 nodeConditions.remove(this->disabled == true?CONDITION_DISABLED:CONDITION_ENABLED);
61 this->disabled = disabled;
62 nodeConditions.add(this->disabled == true?CONDITION_DISABLED:CONDITION_ENABLED);
63}
64
66{
67 //
69
70 //
71 GUIElementController::initialize();
72}
73
75{
76 GUIElementController::dispose();
77}
78
80{
81}
82
84{
85 GUIElementController::handleMouseEvent(node, event);
86 if (disabled == false && node == this->node && node->isEventBelongingToNode(event) && event->getButton() == MOUSE_BUTTON_LEFT) {
87 event->setProcessed(true);
88 if (event->getType() == GUIMouseEvent::MOUSEEVENT_RELEASED) {
89 setChecked(checked == true ? false : true);
90 node->getScreenNode()->getGUI()->setFoccussedNode(required_dynamic_cast<GUIElementNode*>(node));
91 node->getScreenNode()->delegateValueChanged(required_dynamic_cast<GUIElementNode*>(node));
92 }
93 }
94}
95
97{
98 GUIElementController::handleKeyboardEvent(event);
99 if (disabled == false) {
100 switch (event->getKeyCode()) {
101 case GUIKeyboardEvent::KEYCODE_SPACE: {
102 event->setProcessed(true);
103 if (event->getType() == GUIKeyboardEvent::KEYBOARDEVENT_KEY_PRESSED) {
104 setChecked(checked == true ? false : true);
105 node->getScreenNode()->delegateValueChanged(required_dynamic_cast<GUIElementNode*>(node));
106 }
107 }
108 break;
109 default: {
110 break;
111 }
112 }
113
114 }
115}
116
118{
119 GUIElementController::tick();
120}
121
123{
124}
125
127{
128}
129
131{
132 return true;
133}
134
136{
137 value.reset();
138 if (checked == true) {
139 value.append(required_dynamic_cast<GUIElementNode*>(node)->getValue());
140 }
141 return value;
142}
143
145{
146 setChecked(value.equals(required_dynamic_cast<GUIElementNode*>(node)->getValue()));
147}
#define MOUSE_BUTTON_LEFT
GUI module class.
Definition: GUI.h:66
void setFoccussedNode(GUIElementNode *newFoccussedNode)
Set focussed node.
Definition: GUI.cpp:359
void dispose() override
Dispose controller.
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.
void tick() override
Tick method will be executed once per frame.
static STATIC_DLL_IMPEXT string CONDITION_UNCHECKED
static STATIC_DLL_IMPEXT string CONDITION_DISABLED
static STATIC_DLL_IMPEXT string CONDITION_ENABLED
void setDisabled(bool disabled) override
Set disabled.
static STATIC_DLL_IMPEXT string CONDITION_CHECKED
GUI element node conditions.
GUI node base class.
Definition: GUINode.h:63
bool isEventBelongingToNode(GUIMouseEvent *event, Vector2 &position)
Is event belonging to node.
Definition: GUINode.cpp:973
GUIScreenNode * getScreenNode()
Definition: GUINode.h:315
GUI screen node that represents a screen that can be rendered via GUI system.
Definition: GUIScreenNode.h:57
void delegateValueChanged(GUIElementNode *node)
Delegate value changed.
Console class.
Definition: Console.h:26
Mutable string class.
Definition: MutableString.h:16
MutableString & append(char c)
Append character.
MutableString & reset()
Reset.
bool equals(const string &s2) const
Equals.