fix(ui): match retail spell bar controls
Place favorite-bar arrows by their authored sides, import rollover and pressed media through the shared scrollbar, and preserve manual offsets across passive refreshes. Carry the mixed-parent DAT anchor chain to a fixed 18-cell favorite viewport so overflow controls and the Cast button remain inside the retail-sized combat frame. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
02c29e67c8
commit
0134122c28
17 changed files with 424 additions and 59 deletions
|
|
@ -64,6 +64,12 @@ public static class RetailWindowFrame
|
|||
public bool DrawChromeCenter { get; init; } = true;
|
||||
public bool Visible { get; init; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// Top-level desktop anchors. Most movable windows are unanchored; fixed
|
||||
/// retail HUD roots can preserve their authored screen-edge margins.
|
||||
/// </summary>
|
||||
public AnchorEdges OuterAnchors { get; init; } = AnchorEdges.None;
|
||||
|
||||
public AnchorEdges ContentAnchors { get; init; } =
|
||||
AnchorEdges.Left | AnchorEdges.Top | AnchorEdges.Right | AnchorEdges.Bottom;
|
||||
public bool? ContentClickThrough { get; init; }
|
||||
|
|
@ -133,7 +139,7 @@ public static class RetailWindowFrame
|
|||
outerFrame.Top = options.Top;
|
||||
outerFrame.Width = outerWidth;
|
||||
outerFrame.Height = outerHeight;
|
||||
outerFrame.Anchors = AnchorEdges.None;
|
||||
outerFrame.Anchors = options.OuterAnchors;
|
||||
outerFrame.Draggable = options.Draggable;
|
||||
outerFrame.Resizable = options.Resizable;
|
||||
outerFrame.ResizeX = options.ResizeX;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue