42 string GUIMenuHeaderItemController::CONDITION_OPENED =
"opened";
43 string GUIMenuHeaderItemController::CONDITION_CLOSED =
"closed";
44 string GUIMenuHeaderItemController::CONDITION_SELECTED =
"selected";
45 string GUIMenuHeaderItemController::CONDITION_UNSELECTED =
"unselected";
48 GUIMenuHeaderItemController::GUIMenuHeaderItemController(
GUINode* node)
51 this->
selected = required_dynamic_cast<GUIElementNode*>(
node)->isSelected();
62 auto& nodeConditions = required_dynamic_cast<GUIElementNode*>(
node)->getActiveConditions();
70 auto& nodeConditions = required_dynamic_cast<GUIElementNode*>(
node)->getActiveConditions();
81 GUIElementController::initialize();
88 while (
true ==
true) {
98 GUIElementController::dispose();
120 vector<GUINode*> childControllerNodes;
122 required_dynamic_cast<GUIParentNode*>(
node)->getChildControllerNodes(childControllerNodes);
123 for (
auto i = 0; i < childControllerNodes.size(); i++) {
124 auto childControllerNode = childControllerNodes[i];
125 auto childController = childControllerNode->getController();
127 if (menuItemController !=
nullptr) {
153 auto disabledItems = 0;
176 auto disabledItems = 0;
201 GUIElementController::handleMouseEvent(
node, event);
203 auto elementNode = required_dynamic_cast<GUIElementNode*>(this->node);
205 auto menuOpened = menuHeaderController->isOpen();
206 if (menuOpened ==
false) {
207 if (
node == this->node &&
209 event->
getType() == GUIMouseEvent::MOUSEEVENT_RELEASED &&
212 event->setProcessed(
true);
214 menuHeaderController->select(required_dynamic_cast<GUIElementNode*>(this->node));
220 node == this->node &&
222 event->
getType() == GUIMouseEvent::MOUSEEVENT_RELEASED) {
224 if (innerNode->isEventBelongingToNode(event) ==
false) {
225 event->setProcessed(
true);
227 menuHeaderController->unselect();
230 if (
node == this->node &&
231 event->
getType() == GUIMouseEvent::MOUSEEVENT_MOVED) {
234 event->setProcessed(
true);
236 menuHeaderController->select(required_dynamic_cast<GUIElementNode*>(this->node)); }
244 GUIElementController::handleKeyboardEvent(event);
249 GUIElementController::tick();
void addMouseOutClickCandidateNode(GUINode *node)
Add node that is a possible mouse click out candidate as it received a mouse click.
void setFoccussedNode(GUIElementNode *newFoccussedNode)
Set focussed node.
GUIMouseEventType getType() const
bool isDisabled() override
GUI element node conditions.
bool isEventBelongingToNode(GUIMouseEvent *event, Vector2 &nodeCoordinate)
Is event belonging to node.
GUINodeController * getController()
GUIParentNode * getParentControllerNode()
GUIScreenNode * getScreenNode()
GUI parent node base class thats supporting child nodes.
GUI screen node that represents a screen that can be rendered via GUI system.
GUINode * getNodeById(const string &nodeId)
Get GUI node by id.
Mutable utf8 aware string class.
MutableString & reset()
Reset.