SwitchSlot

A switch slot will try each of its children and pick the first one that fits the available space. If the a node is too large to fit, it will try the next one in the list until it finds one that matches, or the last node in the list.

null is an acceptable value, indicating that no node should be drawn.

Constructors

this
this(Node[] nodes)
Undocumented in source.

Members

Aliases

isHidden
alias isHidden = typeof(super).isHidden
Undocumented in source.

Functions

drawImpl
void drawImpl(Rectangle outer, Rectangle inner)
Undocumented in source. Be warned that the author may not have intended to support it.
hoveredImpl
bool hoveredImpl(Rectangle , Vector2 )
Undocumented in source. Be warned that the author may not have intended to support it.
resizeImpl
void resizeImpl(Vector2 availableSpace)
Undocumented in source. Be warned that the author may not have intended to support it.
retry
SwitchSlot retry(Args args)

Create a new slot that will only draw if this slot is hidden or ends up with a null node.

Properties

isHidden
bool isHidden [@property getter]
Undocumented in source. Be warned that the author may not have intended to support it.

Variables

_availableSpace
Vector2 _availableSpace;

Last available space assigned to this node.

availableNodes
Node[] availableNodes;
Undocumented in source.
node
Node node;
Undocumented in source.
principalNode
Node principalNode;

If present, this node will only be drawn in case its principal node is hidden. In case the principal node is another SwitchSlot, this might be because it failed to match any non-null node.

Inherited Members

From Node

NodeAlign (from fluid.structs)
enum NodeAlign via public import fluid.structs : NodeAlign, Layout;
Undocumented in source.
Layout (from fluid.structs)
struct Layout via public import fluid.structs : NodeAlign, Layout;

Node parameter for setting the node layout.

Align (from fluid.structs)
enum NodeAlign via public import fluid.structs : Align = NodeAlign;
Undocumented in source.
Extra
class Extra
Undocumented in source.
tree
LayoutTree* tree;

Tree data for the node. Note: requires at least one draw before this will work.

layout
Layout layout;

Layout for this node.

tags
TagList tags;

Tags assigned for this node.

toRemove
bool toRemove;

If true, this node will be removed from the tree on the next draw.

ignoreMouse
bool ignoreMouse;

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.

minSize
auto minSize;

Minimum size of the node.

theme
inout(Theme) theme [@property getter]

Get the current theme.

theme
Theme theme [@property setter]

Set the theme.

style
inout(Style) style [@property getter]

Current style, used for sizing. Does not include any changes made by when clauses or callbacks.

isHidden
bool isHidden [@property getter]

Check if the node is hidden.

isHidden
bool isHidden [@property setter]

Set the visibility

opEquals
bool opEquals(Node otherNode)
Undocumented in source. Be warned that the author may not have intended to support it.
show
This show()

Show the node.

hide
This hide()

Hide the node.

disable
This disable()

Disable this node.

enable
This enable()

Enable this node.

backend
inout(FluidBackend) backend()
Undocumented in source. Be warned that the author may not have intended to support it.
backend
FluidBackend backend(FluidBackend backend)
Undocumented in source. Be warned that the author may not have intended to support it.
io
alias io = backend
Undocumented in source.
toggleShow
void toggleShow()

Toggle the node's visibility.

remove
void remove()

Remove this node from the tree before the next draw.

isHovered
bool isHovered [@property getter]

Check if this node is hovered.

isDisabled
inout(bool) isDisabled()

Check if this node is disabled.

isDisabledInherited
bool isDisabledInherited()

Checks if the node is disabled, either by self, or by any of its ancestors. Updated when drawn.

queueAction
void queueAction(TreeAction action)

Queue an action to perform within this node's branch.

resizePending
bool resizePending()

True if this node is pending a resize.

updateSize
void updateSize()

Recalculate the window size before next draw.

draw
void draw()

Draw this node as a root node.

_focusPrevNext
void _focusPrevNext(FluidInputAction actionType)

Switch to the previous or next focused item

_focusDirection
void _focusDirection(FluidInputAction action)

Switch focus towards a specified direction.

draw
void draw(Rectangle space)

Draw this node at the specified location from within of another (parent) node.

resize
void resize(LayoutTree* tree, Theme theme, Vector2 space)

Recalculate the minimum node size and update the minSize property.

resizeImpl
void resizeImpl(Vector2 space)

Ditto

drawImpl
void drawImpl(Rectangle paddingBox, Rectangle contentBox)

Draw this node.

hoveredImpl
bool hoveredImpl(Rectangle rect, Vector2 mousePosition)

Check if the node is hovered.

ImplHoveredRect
alias ImplHoveredRect = implHoveredRect
Undocumented in source.
implHoveredRect
deprecated mixintemplate implHoveredRect()
Undocumented in source.
pickStyle
Style pickStyle()

Get the current style.

reloadStyles
void reloadStyles()

Reload style from the current theme.

toString
string toString()
Undocumented in source. Be warned that the author may not have intended to support it.

Meta