4#include <unordered_map>
5#include <unordered_set>
20using std::unordered_map;
21using std::unordered_set;
242 const string& backgroundImage,
346 auto nodesByIdIt =
nodesById.find(nodeId);
350 return nodesByIdIt->second;
358 void removeNodeById(
const string& nodeId,
bool resetScrollOffsets);
528 void getValues(unordered_map<string, MutableString>& values);
534 void setValues(
const unordered_map<string, MutableString>& values);
GUI element node conditions.
GUIColor backgroundImageEffectColorMul
GUINode_Scale9Grid backgroundImageScale9Grid
GUIColor backgroundImageEffectColorAdd
GUIParentNode * parentNode
GUINode_RequestedConstraints requestedConstraints
GUINode_Alignments alignments
GUI parent node overflow enum.
GUI parent node base class thats supporting child nodes.
GUIParentNode_Overflow * overflowX
friend class GUIScreenNode
GUIParentNode_Overflow * overflowY
GUI screen node that represents a screen that can be rendered via GUI system.
GUIInputEventHandler * inputEventHandler
void delegateUnfocus(GUIElementNode *node)
Delegate unfocus event.
void setInputEventHandler(GUIInputEventHandler *inputEventHandler)
Set input event handler.
~GUIScreenNode()
Destructor.
void invalidateLayout(GUINode *node)
Mark a node to be invalidated regarding layout.
const string getNodeType() override
void determineFocussedNodes(GUIParentNode *parentNode, vector< GUIElementNode * > &focusableNodes)
Determine focussed nodes.
void setVisible(bool visible)
Set visible.
int getContentWidth() override
bool removeNode(GUINode *node)
Add node.
void scrollToNodeX(const string &node, const string &toNode)
Register deferred scroll to node X.
void scrollToNodeY(const string &node, const string &toNode)
Register deferred scroll to node Y.
GUIInputEventHandler * getInputEventHandler()
int getContentHeight() override
unordered_map< string, GUINode * > tickNodesById
void addContextMenuRequestListener(GUIContextMenuRequestListener *listener)
Add context menu request listener.
vector< GUIMouseOverListener * > mouseOverListener
void addTimedExpression(int64_t time, const string &expression)
Add a timed expression.
vector< GUINode * > childControllerNodes
void scrollToNodes()
Scroll to nodes.
void addChangeListener(GUIChangeListener *listener)
Add change listener.
void removeContextMenuRequestListener(GUIContextMenuRequestListener *listener)
Remove context menu request listener.
void setPopUp(bool popUp)
Set pop up.
GUINode * getNodeById(const string &nodeId)
Get GUI node by id.
vector< GUIChangeListener * > changeListener
void setValues(const unordered_map< string, MutableString > &values)
Set values.
GUINode * forceInvalidateLayout(GUINode *node)
Actually do the invalidate layout.
void removeChangeListener(GUIChangeListener *listener)
Remove change listener.
void removeNodeById(const string &nodeId, bool resetScrollOffsets)
Remove GUI node by id.
void layout() override
Layout.
void delegateFocus(GUIElementNode *node)
Delegate focus event.
void removeActionListener(GUIActionListener *listener)
Remove action listener.
void removeFocusListener(GUIFocusListener *listener)
Remove focus listener.
void removeMouseOverListener(GUIMouseOverListener *listener)
Remove mouse over listener.
void delegateMouseOver(GUIElementNode *node)
Delegate mouse over event.
const string & getFileName()
void delegateValueChanged(GUIElementNode *node)
Delegate value changed.
vector< GUIFocusListener * > focusListener
GUIScreenNode_SizeConstraints & getSizeConstraints()
static GUIScreenNode_SizeConstraints createSizeConstraints(const string &minWidth, const string &minHeight, const string &maxWidth, const string &maxHeight)
Create size constraints.
void tick()
Calls registered tick nodes controller tick method.
void addMouseOverListener(GUIMouseOverListener *listener)
Add mouse over listener.
void renderFloatingNodes(GUIRenderer *guiRenderer)
Render floating nodes.
void removeTickNode(GUINode *node)
Remove tick node.
void determineMouseEventNodes(GUIMouseEvent *event, bool floatingNode, unordered_set< string > &eventNodeIds, unordered_set< string > &eventFloatingNodeIds) override
Determine mouse event nodes.
GUIScreenNode_SizeConstraints sizeConstraints
vector< ScrollToNodeStruct > scrollToNodesY
void setScreenSize(int width, int height)
Set screen size.
void delegateActionPerformed(GUIActionListenerType type, GUIElementNode *node)
Delegate action performed.
void getValues(unordered_map< string, MutableString > &values)
Get values.
vector< GUIActionListener * > actionListener
void render(GUIRenderer *guiRenderer) override
Render screen.
void addActionListener(GUIActionListener *listener)
Add action listener.
const string allocateNodeId()
Allocate node id.
string applicationSubPathName
unordered_map< string, GUINode * > nodesById
string applicationRootPathName
GUINode * getInnerNodeById(const string &nodeId)
Get inner GUI node by id.
vector< GUINode * > floatingNodes
bool isContentNode() override
bool addNode(GUINode *node)
Add node.
void invalidateLayouts()
Actually do the nodes marked for layout invalidation.
unordered_map< int64_t, string > timedExpressions
unordered_map< string, unordered_set< string > > elementNodeToNodeMapping
void setGUI(GUI *gui)
Set GUI.
void delegateContextMenuRequest(GUIElementNode *node, int mouseX, int mouseY)
Delegate mouse over event.
const string & getApplicationSubPathName()
const string & getApplicationRootPathName()
vector< ScrollToNodeStruct > scrollToNodesX
void addFocusListener(GUIFocusListener *listener)
Add focus listener.
void addTickNode(GUINode *node)
Add tick node, registered node controllers will have a tick once per frame.
unordered_set< string > invalidateLayoutNodeIds
void forceLayout(GUINode *node)
Force layout node content (e.g.
vector< GUIContextMenuRequestListener * > contextMenuRequestListener
void addNodeElementNodeDependency(const string &elementNodeId, const string &nodeId)
Add node to element node dependency.
const vector< GUINode * > & getFloatingNodes()
GUI action listener interface.
GUI change listener interface.
GUI focus listener interface.
GUI node requested constraints entity.
GUI node scale 9 grid entity.
GUI screen node size constraints entity.