Skip to content

InteractableWidget

Namespace: Hex1b.Widgets

Assembly: Hex1b.dll

A widget that wraps a child tree and makes the entire area focusable, clickable, and hoverable. The builder lambda is deferred to reconciliation time so it can read current focus/hover state from the .

csharp
public sealed record InteractableWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<InteractableWidget>

Inheritance

ObjectHex1bWidgetInteractableWidget

Implements

Constructors

InteractableWidget(Func<InteractableContext, Hex1bWidget>)

A widget that wraps a child tree and makes the entire area focusable, clickable, and hoverable. The builder lambda is deferred to reconciliation time so it can read current focus/hover state from the .

Parameters:

csharp
public InteractableWidget(Func<InteractableContext, Hex1bWidget> Builder)

Properties

Builder

Returns: Func<InteractableContext, Hex1bWidget>

csharp
public Func<InteractableContext, Hex1bWidget> Builder { get; init; }

Methods

OnClick(Action<InteractableClickedEventArgs>)

Sets a synchronous click handler.

Parameters:

Returns: InteractableWidget

csharp
public InteractableWidget OnClick(Action<InteractableClickedEventArgs> handler)

OnClick(Func<InteractableClickedEventArgs, Task>)

Sets an asynchronous click handler.

Parameters:

Returns: InteractableWidget

csharp
public InteractableWidget OnClick(Func<InteractableClickedEventArgs, Task> handler)

OnFocusChanged(Action<InteractableFocusChangedEventArgs>)

Sets a focus change handler. Called when the interactable gains or loses focus.

Parameters:

Returns: InteractableWidget

csharp
public InteractableWidget OnFocusChanged(Action<InteractableFocusChangedEventArgs> handler)

OnHoverChanged(Action<InteractableHoverChangedEventArgs>)

Sets a hover change handler. Called when the mouse enters or leaves the interactable area.

Parameters:

Returns: InteractableWidget

csharp
public InteractableWidget OnHoverChanged(Action<InteractableHoverChangedEventArgs> handler)

Fields

Activate

Rebindable action: Activate the interactable.

Returns: ActionId

csharp
public static readonly ActionId Activate

Examples

csharp
ctx.Interactable(ic =>
    ic.VStack(v => [
        v.Text("Resource: API"),
        v.Text("Status: Running"),
    ])
)
.OnClick(args => NavigateToResource())
.OnFocusChanged(args => LogFocusChange(args.IsFocused))

Released under the MIT License.