Files
WoWee/include/ui
Kelsi 8d6ed48193 feat(ui): backdrops and status bars, and stop Lua no-ops shadowing C bindings
Two of the types FrameXML leans on hardest. A backdrop is the bordered panel
nearly every window in the original interface is built from, and StatusBar is
health, mana, cast bars and experience all at once — without them a panel comes
out as a flat rectangle.

The edge file is a strip of eight square tiles. That is measured, not assumed:
UI-Tooltip-Border is 128x16 and UI-DialogBox-Border 256x32, both exactly eight
wide. Edges are drawn before corners so a corner is never clipped by the run it
meets, and the background sits inside the insets so it cannot show through the
border over it. A frame carrying either now draws, beneath its own regions,
because those sit a level above it.

The shadowing problem that cost two rounds is now structurally impossible rather
than something to keep noticing. Checking the C binding table against the Lua
definitions caught SetBackdrop and both its colour setters about to be lost the
same way EnableMouse was — so the bindings are simply re-applied after the
bootstrap Lua runs. A no-op that answers and does nothing is much harder to spot
than one that errors, and this was the fourth instance.

Adding a StatusBar to the demo found an emitter bug: a nested frame's anchors
were resolved against UIParent instead of the frame containing it, so anything
inside a panel was positioned against the screen. FrameXML nests constantly.
Inside a template the container is not known until replay, so the parent is
asked for then.

Still 228 of 228 real XML files parsing; four more widget tests and two more
emitter tests.
2026-08-01 12:34:44 -07:00
..
2026-08-01 11:54:43 -07:00
2026-08-01 11:54:43 -07:00