ToggleSwitchNode
Namespace: Hex1b
Assembly: Hex1b.dll
A horizontal toggle switch node that renders options side-by-side and allows selection via left/right arrow keys. Selection state is owned by this node and preserved across reconciliation.
public sealed class ToggleSwitchNode : Hex1bNodeInheritance
Object → Hex1bNode → ToggleSwitchNode
Properties
IsFocusable
Returns true if this node can receive focus.
Returns: Boolean
public override bool IsFocusable { get; }IsFocused
Gets or sets whether this node is currently focused. Only meaningful for focusable nodes (where IsFocusable is true).
Returns: Boolean
public override bool IsFocused { get; set; }IsHovered
Gets or sets whether the mouse is currently hovering over this node. Set by Hex1bApp based on mouse position during each frame. Only set on focusable nodes (tracked via FocusRing hit testing).
Returns: Boolean
public override bool IsHovered { get; set; }Options
The available options for the toggle switch.
Returns: IReadOnlyList<String>
public IReadOnlyList<string> Options { get; set; }SelectedIndex
The currently selected option index.
Returns: Int32
public int SelectedIndex { get; set; }SelectedOption
Gets the currently selected option, or null if no options exist.
Returns: String
public string? SelectedOption { get; }SourceWidget
The source widget that was reconciled into this node.
Returns: ToggleSwitchWidget
public ToggleSwitchWidget? SourceWidget { get; set; }Methods
ConfigureDefaultBindings(InputBindingsBuilder)
Configures the default input bindings for this node type. Override in derived classes to add default key bindings. These bindings can be inspected and modified by the user's callback.
Parameters:
bindings(InputBindingsBuilder): The builder to add bindings to.
public override void ConfigureDefaultBindings(InputBindingsBuilder bindings)HandleMouseClick(int, int, Hex1bMouseEvent)
Handles mouse click by selecting the option at the clicked X position.
Parameters:
localX(Int32):localY(Int32):mouseEvent(Hex1bMouseEvent):
Returns: InputResult
public override InputResult HandleMouseClick(int localX, int localY, Hex1bMouseEvent mouseEvent)MeasureCore(Constraints)
Override this method to implement measuring logic for this node.
Parameters:
constraints(Constraints):
Returns: Size
protected override Size MeasureCore(Constraints constraints)Render(Hex1bRenderContext)
Renders the node to the given context.
Parameters:
context(Hex1bRenderContext):
public override void Render(Hex1bRenderContext context)