4 #include <unordered_set>
17 using std::unordered_set;
104 const string& backgroundImage,
176 void addSubNodes(
const string& xml,
bool resetScrollOffsets);
GUI element node conditions.
GUIColor backgroundImageEffectColorMul
friend class GUIParentNode
GUINode_Scale9Grid backgroundImageScale9Grid
GUIColor backgroundImageEffectColorAdd
GUIParentNode * parentNode
GUIScreenNode * screenNode
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
void getChildControllerNodes(vector< GUINode * > &childControllerNodes, bool requireConditionsMet=false)
Get child controller nodes.
void dispose() override
Dispose node.
virtual void computeHorizontalChildrenAlignment()
Compute horizontal children alignment.
float childrenRenderOffsetY
void setConditionsMet() override
Set conditions met for this node and its subnodes.
void getChildControllerNodesInternal(vector< GUINode * > &childControllerNodes, bool requireConditionsMet=false)
Get child controller nodes internal.
static GUIParentNode_Overflow * createOverflow(const string &overflow)
Create over flow.
void setChildrenRenderOffsetX(float childrenRenderOffSetX)
Set children render offset x.
GUIParentNode_Overflow * getOverflowX()
bool computeViewportCache
void removeSubNode(GUINode *node, bool resetScrollOffsets)
Remove sub node.
vector< GUINode * > vieportSubNodesCache
void replaceSubNodes(const string &xml, bool resetScrollOffsets)
Replace sub nodes with given XML.
void layout() override
Layout.
void clearSubNodes()
Clear sub nodes.
float getChildrenRenderOffsetX()
void unsetMouseStates()
Unset mouse over and click conditions on element nodes.
GUIParentNode_Overflow * getOverflowY()
vector< GUINode * > floatingNodesCache
void determineMouseEventNodes(GUIMouseEvent *event, bool floatingNode, unordered_set< string > &eventNodeIds, unordered_set< string > &eventFloatingNodeIds, int flags=DETERMINEMOUSEEVENTNODES_FLAG_NONE) override
Determine mouse event nodes.
void moveSubNodes(GUIParentNode *otherParentNode)
Move children nodes from other parent node into this parent node.
void render(GUIRenderer *guiRenderer) override
Render.
void moveSubNode(GUIParentNode *otherParentNode, int index)
Move children node from other parent node into this parent node.
GUINode * detachSubNode(int index)
Detach sub node at given index.
float getChildrenRenderOffsetY()
GUIParentNode_Overflow * overflowY
virtual void layoutSubNodes()
Layout sub nodes.
vector< GUINode * > subNodes
static GUINode_RequestedConstraints createRequestedConstraints(const string &left, const string &top, const string &width, const string &height, int factor)
Create requested constraints.
vector< GUINode * > detachSubNodes()
Detach sub nodes.
void setChildrenRenderOffsetY(float childrenRenderOffSetY)
Set children render offset y.
void addSubNode(GUINode *node)
Add sub node.
void determineNodesByCoordinate(const Vector2 &coordinate, unordered_set< string > &nodeIds) override
Determine nodes by coordinate.
float childrenRenderOffsetX
virtual void computeVerticalChildrenAlignment()
Compute vertical children alignment.
void addSubNodes(const string &xml, bool resetScrollOffsets)
Add sub nodes with given XML.
void invalidateRenderCaches()
Invalidate render caches.
GUI screen node that represents a screen that can be rendered via GUI system.
Vector2 class representing vector2 mathematical structure and operations with x, y components.
GUI node requested constraints entity.
GUI node scale 9 grid entity.
#define FORBID_CLASS_COPY(CLASS)