Set the value and maxValue of the progressBar.
Get text that displays on top of the progress bar.
Node used as the filling for this progress bar.
value, along with maxValue indicate the current progress, defined as the fraction of value over maxValue. If 0, the progress bar is empty. If equal to maxValue, the progress bar is full.
Text used by the node.
value, along with maxValue indicate the current progress, defined as the fraction of value over maxValue. If 0, the progress bar is empty. If equal to maxValue, the progress bar is full.
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, 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.
Filter to apply to every result of inBounds, controlling how the node reacts to some events, such as mouse click or a finger touch.
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
The theme defines how the node will appear to the user.
Set the theme.
Nodes automatically inherit theme from their parent, and the root node implicitly 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.
toRemove is used to mark nodes for removal. A node marked as such should stop being drawn, and should be removed from the tree.
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.
Apply all of the given node parameters on this node.
Queue an action to perform within this node's branch.
Perform a tree action the next time this node is drawn.
Start a branch action (or multiple) to run on children of this node.
True if this node is pending a resize.
Recalculate the window size before next draw.
Draw this node as a root node.
Draw a child node at the specified location inside of this node.
Draw this node at the specified location from within of another (parent) node.
Get the node's margin box for given available space. The margin box, nor the available space aren't typically given to a node, but this may be useful for its parent nodes.
Get the node's padding box (outer box) for set available space.
Prepare a child for use. This is automatically called by resizeChild and only meant for advanced usage.
Resize a child of this node.
Recalculate the minimum node size and update the minSize property.
Switch to the previous or next focused item
Switch focus towards a specified direction.
Connect to an I/O system
Require
Load a resource associated with the given I/O.
Enable I/O interfaces implemented by this node.
This is the implementation of resizing to be provided by children.
Draw this node.
Check if the node is hovered.
Test if the specified point is the node's bounds. This is used to map screen positions to nodes, such as when determining which nodes are hovered by mouse. If the node contains the point, then it is "opaque," and if not, it is "transparent".
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.
Progress bar node for communicating the program is actively working on something, and needs time to process. The progress bar draws a styleable ProgressBarFill node inside, spanning a fraction of its content, usually starting from left. Text is drawn over the node to display current progress.
The progress bar will use text height for its own height, but it needs extra horizontal space to be functional. To make sure it displays, ensure its horizontal alignment is always set to "fill" — this is the default, if the layout is not changed.
Styling
The progressBar component is split into two nodes, ProgressBar and ProgressBarFill. When styling, the former defines the background, greyed out part of the node, and the latter defines the foreground, the fill that appears as progress is accumulated. Usually, the background for ProgressBar will have low saturation or be grayed out, and ProgressBarFill will be colorful.
Text currently uses the ProgressBar color, but it's possible it will blend the colors of both sides in the future.
Text format
ProgressBar does not currently offer the possibility to change text format, but it can be accomplished by subclassing and overriding the buildText method, like so:
Importantly, should buildText return an empty string, the progress bar will disappear, since its size depends on the text itself. If text is not desired, one can set textColor to a transparent value like color("#0000"). Alternatively resizeImpl can also be overrided to change the sizing behavior.