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 ​

Object → Hex1bWidget → InteractableWidget

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.