Skip to content

ToggleSwitchNode ​

Namespace: Hex1b

Assembly: Hex1b.dll

A horizontal toggle switch node that renders options as adjacent per-option chips and allows selection via left/right arrow keys or mouse click. Selection state is owned by this node and preserved across reconciliation.

csharp
public sealed class ToggleSwitchNode : Hex1bNode

Inheritance ​

Object → Hex1bNode → ToggleSwitchNode

Properties ​

IsFocusable ​

Returns true if this node can receive focus.

Returns: Boolean

csharp
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

csharp
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

csharp
public override bool IsHovered { get; set; }

Options ​

The available options for the toggle switch.

Returns: IReadOnlyList<String>

csharp
public IReadOnlyList<string> Options { get; set; }

SelectedIndex ​

The currently selected option index.

Returns: Int32

csharp
public int SelectedIndex { get; set; }

SelectedOption ​

Gets the currently selected option, or null if no options exist.

Returns: String

csharp
public string? SelectedOption { get; }

SourceWidget ​

The source widget that was reconciled into this node.

Returns: ToggleSwitchWidget

csharp
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:

csharp
public override void ConfigureDefaultBindings(InputBindingsBuilder bindings)

HandleMouseClick(int, int, Hex1bMouseEvent) ​

Handles mouse click by selecting the option whose chip contains the click.

Parameters:

Returns: InputResult

csharp
public override InputResult HandleMouseClick(int localX, int localY, Hex1bMouseEvent mouseEvent)

MeasureCore(Constraints) ​

Override this method to implement measuring logic for this node.

Parameters:

Returns: Size

csharp
protected override Size MeasureCore(Constraints constraints)

Render(Hex1bRenderContext) ​

Renders the node to the given context.

Parameters:

csharp
public override void Render(Hex1bRenderContext context)

Remarks ​

Each option occupies 1 + label_display_width + 1 cells (a single padding cell on each side of the label) and is painted in its own colours — the selected option gets the /

pair (depending on whether the toggle has focus), and the unselected options get the . There is no separator glyph between options.

Released under the MIT License.