5 #include <unordered_map>
6 #include <unordered_set>
26 using std::unique_ptr;
27 using std::unordered_map;
28 using std::unordered_set;
375 const string& backgroundImage,
387 const string& scriptFileName,
458 auto nodesByIdIt =
nodesById.find(nodeId);
462 return nodesByIdIt->second;
470 void removeNodeById(
const string& nodeId,
bool resetScrollOffsets);
726 void getValues(unordered_map<string, MutableString>& values);
732 void setValues(
const unordered_map<string, MutableString>& values);
GUI element node conditions.
GUIColor backgroundImageEffectColorMul
GUINode_Scale9Grid backgroundImageScale9Grid
GUIColor backgroundImageEffectColorAdd
GUIParentNode * parentNode
GUINode_RequestedConstraints requestedConstraints
static constexpr int DETERMINEMOUSEEVENTNODES_FLAG_NONE
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 setInputEventHandler(GUIInputEventHandler *inputEventHandler)
Set input event handler.
void getProjectFilePathNameAndFileName(const string &fileName, string &projectFilePathName, string &projectFileFileName)
Get project path and filename of given file name.
bool scriptOnFocusAvailable
~GUIScreenNode()
Destructor.
void invalidateLayout(GUINode *node)
Mark a node to be invalidated regarding layout.
const string getNodeType() override
void clearEvents()
Clear events.
void determineFocussedNodes(GUIParentNode *parentNode, vector< GUIElementNode * > &focusableNodes)
Determine focussed nodes.
int getContentWidth() override
bool removeNode(GUINode *node)
Add node.
vector< ForwardEvent > forwardEventList
void scrollToNodeX(const string &node, const string &toNode)
Register deferred scroll to node X.
void forwardEvents()
Forward events.
bool scriptOnDragRequestAvailable
bool scriptOnTickAvailable
void removeDragRequestListener(GUIDragRequestListener *listener)
Remove drag request listener.
const string & getFileName()
void scrollToNodeY(const string &node, const string &toNode)
Register deferred scroll to node Y.
void setEnabled(bool enabled)
Set enabled.
GUIInputEventHandler * getInputEventHandler()
bool scriptOnUnfocusAvailable
int getContentHeight() override
bool scriptOnTooltipCloseRequestAvailable
unordered_map< string, GUINode * > tickNodesById
void forwardChange(GUIElementNode *node)
Forward change event.
bool hasTickNode(GUINode *node)
void addContextMenuRequestListener(GUIContextMenuRequestListener *listener)
Add context menu request listener.
void addMoveListener(GUIMoveListener *listener)
Add move listener.
vector< GUIMouseOverListener * > mouseOverListener
void forwardContextMenuRequest(GUIElementNode *node, int mouseX, int mouseY)
Forward context menu request event.
void addTimedExpression(int64_t time, const string &expression)
Add a timed expression.
vector< GUINode * > childControllerNodes
void forwardTooltipShowRequest(GUINode *node, int mouseX, int mouseY)
Forward tooltip show request event.
void addDragRequestListener(GUIDragRequestListener *listener)
Add drag request listener.
GUIColor foccussedBorderColor
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.
void addTooltipRequestListener(GUITooltipRequestListener *listener)
Add tooltip request listener.
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 removeTooltipRequestListener(GUITooltipRequestListener *listener)
Remove tooltip request listener.
void removeNodeById(const string &nodeId, bool resetScrollOffsets)
Remove GUI node by id.
bool scriptOnMoveReleaseAvailable
void layout() override
Layout.
void removeActionListener(GUIActionListener *listener)
Remove action listener.
void removeFocusListener(GUIFocusListener *listener)
Remove focus listener.
void removeMouseOverListener(GUIMouseOverListener *listener)
Remove mouse over listener.
bool scriptOnTooltipShowRequestAvailable
void removeMoveListener(GUIMoveListener *listener)
Remove move listener.
void forwardAction(GUIActionListenerType type, GUIElementNode *node)
Forward action event.
bool scriptOnMoveAvailable
vector< GUIFocusListener * > focusListener
bool isMoveAccepted(GUINode *node)
Returns if move is accepted by move listener.
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, int flags=DETERMINEMOUSEEVENTNODES_FLAG_NONE) override
Determine mouse event nodes.
const string & getApplicationRootPathName()
unique_ptr< GUIMiniScript > script
unordered_map< string, Texture * > imageCache
GUIScreenNode_SizeConstraints sizeConstraints
vector< ScrollToNodeStruct > scrollToNodesY
void setScreenSize(int width, int height)
Set screen size.
GUIFont * getFont(const string &fileName, int size)
Get font.
void getValues(unordered_map< string, MutableString > &values)
Get values.
const GUIColor & getFoccussedBorderColor()
vector< GUIActionListener * > actionListener
const string & getApplicationSubPathName()
bool scriptOnChangeAvailable
void render(GUIRenderer *guiRenderer) override
Render screen.
void addActionListener(GUIActionListener *listener)
Add action listener.
void initializeMiniScript()
Initialize mini script.
GUIScreenNode_SizeConstraints & getSizeConstraints()
const string allocateNodeId()
Allocate node id.
string applicationSubPathName
void forwardMove(GUINode *node)
Forward move event.
GUIMiniScript * getMiniScript()
unordered_map< string, GUINode * > nodesById
vector< GUIDragRequestListener * > dragRequestListener
void forwardMouseOver(GUIElementNode *node)
Forward mouse over event.
void forwardUnfocus(GUIElementNode *node)
Forward unfocus event.
string applicationRootPathName
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 forwardTooltipCloseRequest()
Forward tooltip close request event.
vector< GUIMoveListener * > moveListener
void forwardMoveRelease(GUINode *node, int mouseX, int mouseY)
Forward move release event.
unordered_map< string, GUIFont * > fontCache
bool scriptOnContextMenuRequestAvailable
void forwardFocus(GUIElementNode *node)
Forward focus event.
EngineMiniScript::ScriptVariable miniScriptArguments
vector< ScrollToNodeStruct > scrollToNodesX
vector< GUITooltipRequestListener * > tooltipRequestListener
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
GUINode * getInnerNodeById(const string &nodeId)
Get inner GUI node by id.
Texture * getImage(const string &fileName)
Get image.
void forceLayout(GUINode *node)
Force layout node content (e.g.
void forwardDragRequest(GUIElementNode *node, int mouseX, int mouseY)
Forward drag request event.
vector< GUIContextMenuRequestListener * > contextMenuRequestListener
GUINode * getNodeById(const string &nodeId)
Get GUI node by id.
void addNodeElementNodeDependency(const string &elementNodeId, const string &nodeId)
Add node to element node dependency.
bool scriptOnActionAvailable
const vector< GUINode * > & getFloatingNodes()
bool scriptOnMouseOverAvailable
Mutable utf8 aware string class.
GUI action listener interface.
GUI change listener interface.
GUI drag request listener.
GUI focus listener interface.
GUI move listener interface.
GUI node requested constraints entity.
GUI node scale 9 grid entity.
@ EVENTTYPE_CONTEXTMENUREQUEST
@ EVENTTYPE_TOOLTIPCLOSEREQUEST
@ EVENTTYPE_TOOLTIPSHOWREQUEST
ForwardEvent(EventType eventType, const string &nodeId, int mouseX, int mouseY, int type)
GUI screen node size constraints entity.
#define FORBID_CLASS_COPY(CLASS)