4 #include <unordered_map>
19 using std::unordered_map;
33 string GUIRadioButtonController::CONDITION_SELECTED =
"selected";
34 string GUIRadioButtonController::CONDITION_UNSELECTED =
"unselected";
35 string GUIRadioButtonController::CONDITION_DISABLED =
"disabled";
36 string GUIRadioButtonController::CONDITION_ENABLED =
"enabled";
38 unordered_map<string, vector<string>> GUIRadioButtonController::radioButtonGroupNodesByName;
40 GUIRadioButtonController::GUIRadioButtonController(
GUINode* node)
43 this->
selected = required_dynamic_cast<GUIElementNode*>(
node)->isSelected();
44 this->
disabled = required_dynamic_cast<GUIElementNode*>(
node)->isDisabled();
47 "_radiobuttongroup_" +
48 required_dynamic_cast<GUIElementNode*>(
node)->getName()
61 "_radiobuttongroup_" +
62 required_dynamic_cast<GUIElementNode*>(this->node)->getName()
65 for (
auto i = 0; i < radioButtonGroupNodesIt->second.size(); i++) {
67 auto& nodeConditions = radioButtonNode->getActiveConditions();
68 auto nodeController = required_dynamic_cast<GUIRadioButtonController*>(radioButtonNode->getController());
70 nodeController->selected =
false;
74 auto& nodeConditions = required_dynamic_cast<GUIElementNode*>(
node)->getActiveConditions();
87 auto& nodeConditions = required_dynamic_cast<GUIElementNode*>(
node)->getActiveConditions();
95 auto& nodeConditions = required_dynamic_cast<GUIElementNode*>(
node)->getActiveConditions();
99 GUIElementController::initialize();
104 GUIElementController::dispose();
107 "_radiobuttongroup_" +
118 GUIElementController::handleMouseEvent(
node, event);
120 event->setProcessed(
true);
121 if (event->
getType() == GUIMouseEvent::MOUSEEVENT_RELEASED) {
131 GUIElementController::handleKeyboardEvent(event);
134 case GUIKeyboardEvent::KEYCODE_SPACE: {
135 event->setProcessed(
true);
136 if (event->
getType() == GUIKeyboardEvent::KEYBOARDEVENT_KEY_PRESSED) {
152 GUIElementController::tick();
179 if (
value.
equals(required_dynamic_cast<GUIElementNode*>(
node)->getValue()) ==
true) {
void setFoccussedNode(GUIElementNode *newFoccussedNode)
Set focussed node.
int32_t getKeyCode() const
GUIKeyboardEventType getType() const
GUIMouseEventType getType() const
GUI element node conditions.
bool isEventBelongingToNode(GUIMouseEvent *event, Vector2 &nodeCoordinate)
Is event belonging to node.
GUIScreenNode * getScreenNode()
GUI screen node that represents a screen that can be rendered via GUI system.
void forwardChange(GUIElementNode *node)
Forward change event.
GUINode * getNodeById(const string &nodeId)
Get GUI node by id.
Mutable utf8 aware string class.
MutableString & append(char c)
Append character.
bool equals(const string &s2) const
Equals.
MutableString & reset()
Reset.