Implement retail character management screen
This commit is contained in:
parent
5535d0adac
commit
6cfab727f1
19 changed files with 2435 additions and 6 deletions
|
|
@ -49,6 +49,13 @@ public sealed class UiButton : UiElement, IUiGlobalTimeListener, IUiDatStateful
|
|||
/// <summary>Optional click handler. Wired by the controller (e.g. chat Submit, ToggleMaximize).</summary>
|
||||
public Action? OnClick { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional left-button double-click handler. Null preserves the existing
|
||||
/// bubbling behavior; character-management row template 0x100003A5 opts in
|
||||
/// for retail's element message 0x1A (activate the selected character).
|
||||
/// </summary>
|
||||
public Action? OnDoubleClick { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional right-click handler (Campaign OP slice OP8's Configure Keyboard
|
||||
/// screen: right-click a bound key button to erase that one binding —
|
||||
|
|
@ -551,6 +558,11 @@ public sealed class UiButton : UiElement, IUiGlobalTimeListener, IUiDatStateful
|
|||
OnClick?.Invoke();
|
||||
OnClickAt?.Invoke(e.Data1, e.Data2);
|
||||
return OnClick is not null || OnClickAt is not null;
|
||||
case UiEventType.DoubleClick:
|
||||
if (OnDoubleClick is null) return false;
|
||||
if (!Enabled) return true;
|
||||
OnDoubleClick.Invoke();
|
||||
return true;
|
||||
case UiEventType.RightClick:
|
||||
// S6 (2026-08-11 review): unlike Click (whose swallow-when-
|
||||
// disabled is pre-existing, harmless-by-construction behavior
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue