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 .
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:
Builder(Func<InteractableContext, Hex1bWidget>):
public InteractableWidget(Func<InteractableContext, Hex1bWidget> Builder)Properties
Builder
Returns: Func<InteractableContext, Hex1bWidget>
public Func<InteractableContext, Hex1bWidget> Builder { get; init; }Methods
OnClick(Action<InteractableClickedEventArgs>)
Sets a synchronous click handler.
Parameters:
handler(Action<InteractableClickedEventArgs>):
Returns: InteractableWidget
public InteractableWidget OnClick(Action<InteractableClickedEventArgs> handler)OnClick(Func<InteractableClickedEventArgs, Task>)
Sets an asynchronous click handler.
Parameters:
handler(Func<InteractableClickedEventArgs, Task>):
Returns: InteractableWidget
public InteractableWidget OnClick(Func<InteractableClickedEventArgs, Task> handler)OnFocusChanged(Action<InteractableFocusChangedEventArgs>)
Sets a focus change handler. Called when the interactable gains or loses focus.
Parameters:
handler(Action<InteractableFocusChangedEventArgs>):
Returns: InteractableWidget
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:
handler(Action<InteractableHoverChangedEventArgs>):
Returns: InteractableWidget
public InteractableWidget OnHoverChanged(Action<InteractableHoverChangedEventArgs> handler)Fields
Activate
Rebindable action: Activate the interactable.
Returns: ActionId
public static readonly ActionId ActivateExamples
ctx.Interactable(ic =>
ic.VStack(v => [
v.Text("Resource: API"),
v.Text("Status: Running"),
])
)
.OnClick(args => NavigateToResource())
.OnFocusChanged(args => LogFocusChange(args.IsFocused))