fix(ui): match spellbook frame and tab alignment

This commit is contained in:
Erik 2026-07-15 17:08:48 +02:00
parent 16eb4844c1
commit 1249ad03de
5 changed files with 116 additions and 7 deletions

View file

@ -221,6 +221,16 @@ UIElement_Text::OnSetAttribute @ 0x0046A640
SetOneLine(value)
// absent 0x20 therefore remains multi-line; do not force it true
UIElement_Text::CalcJustification @ 0x00467260
available = max(scrollableExtent, surfaceExtent) - leadingMargin - trailingMargin
if justification is Center:
offset = available / 2 - contentExtent / 2
else if justification is Right or Bottom:
offset = available - contentExtent
else:
offset = 0
return leadingMargin + offset
UIElement::SetState @ 0x00464E70
next = desc.AccessStateDesc(stateId)
if next != current:
@ -245,6 +255,12 @@ before its retained children lets the center chrome overpaint the caption.
This rule is derived structurally from `PassToChildren`, not from the two
spellbook element ids.
Layout `0x21000034` supplies the 300 by 600 content surface, including its tab
bar and close control, but not the enclosing movable-window border. Production
mounts it through the same shared retained nine-slice frame used by the
Attributes/Skills window (`0x2100002E`). Treating the root as already framed
removes the gold outer border.
The Magic-combat favorite tab captions are authored text (`I` through `VIII`)
and intentionally omit property `0x20`. Their small rectangles still render
because retail begins with zero text margins. A generic four-pixel inset on