Create the space and fill it with given nodes.
Create the space using nodes from the given range.
Calculate the offset for the next node, given the childSpace result for its previous sibling.
Get space for a child.
List children in the space, removing all nodes queued for deletion beforehand.
Space does not take hover; isHovered is always false.
Add children.
Children of this frame.
Defines in what directions children of this frame should be placed.
Node parameter for setting the node layout.
Tree data for the node. Note: requires at least one draw before this will work.
Layout for this node.
Tags assigned for this node.
Breadcrumbs assigned and applicable to this node. Loaded every resize and every draw.
If true, this node will be removed from the tree on the next draw.
If true, mouse focus will be disabled for this node, so mouse signals will "go through" to its parents, as if the node wasn't there. The node will still detect hover like normal.
True if the theme has been assigned explicitly by a direct assignment. If false, the node will instead inherit themes from the parent.
Minimum size of the node.
Check if the node is hidden.
Set the visibility
Get the current theme.
Set the theme.
Nodes automatically inherit theme from their parent, and the root node implictly inherits the default theme. An explicitly-set theme will override any inherited themes recursively, stopping at nodes that also have themes set explicitly.
Clear the currently assigned theme
Current style, used for sizing. Does not include any changes made by when clauses or callbacks.
Show the node.
Hide the node.
Disable this node.
Enable this node.
Toggle the node's visibility.
Remove this node from the tree before the next draw.
Get the minimum size of this node.
Check if this node is hovered.
Check if this node is disabled.
Checks if the node is disabled, either by self, or by any of its ancestors. Updated when drawn.
Queue an action to perform within this node's branch.
True if this node is pending a resize.
Recalculate the window size before next draw.
Draw this node as a root node.
Switch to the previous or next focused item
Switch focus towards a specified direction.
Draw this node at the specified location from within of another (parent) node.
Recalculate the minimum node size and update the minSize property.
Ditto
Draw this node.
Check if the node is hovered.
The focus box defines the *focused* part of the node. This is relevant in nodes which may have a selectable subset, such as a dropdown box, which may be more important at present moment (selected). Scrolling actions like scrollIntoView will use the focus box to make sure the selected area is presented to the user.
Get the current style.
Reload style from the current theme.
import fluid; // A vspace will align all its content in a column vspace( label("First entry"), label("Second entry"), label("Third entry"), ); // hspace will lay out the nodes in a row hspace( label("One, "), label("Two, "), label("Three!"), ); // Combine them to quickly build layouts! vspace( label("Are you sure you want to proceed?"), hspace( button("Yes", delegate { }), button("Cancel", delegate { }), ), );
This is a space, a basic container for other nodes.
Nodes are laid in a column (vframe) or in a row (hframe).
Space only acts as a container and doesn't implement styles and doesn't take focus. It's very useful as a helper for building layout, while Frame remains to provide styling.