mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-08-03 03:23:35 -04:00
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.