Skin the options the CoA client adds to Interface, Video and Audio

ElvUI skins the stock options windows from four hardcoded name lists, so
every widget the client added since upstream last synced stays native --
53 of them here, 39 in four panels upstream never enumerated at all
(Battlenet, RaidEffects, Stereo, Voice). Reported cases were the Auto
Accept Trades checkbox and the Spell Queue Window slider.

Sweep the three panel containers on show and skin by object type instead
of carrying a parallel name list that would go stale the same way.

Panels belonging to other addons are skipped by matching frames against
INTERFACEOPTIONS_ADDONCATEGORIES, rebuilt on every sweep so a
load-on-demand addon that registers late is still caught.

Two guards worth naming. Sliders are gated on frame.template because
HandleSliderFrame has no idempotence check of its own and HookScript
stacks, so a second pass over one ElvUI already skinned would run its
OnDisable/OnEnable handlers twice. Dropdowns are detected structurally,
by a Middle texture plus a Button, because HandleDropDownBox uses that
button unguarded and a false positive is a Lua error rather than a
cosmetic miss.

No Button branch: nothing needs one, and it would flatten other addons'
panel tabs into ElvUI pill buttons.
This commit is contained in:
2026-08-22 15:57:05 +02:00
parent 13f36e7817
commit 1a62b4ed1f
4 changed files with 172 additions and 0 deletions
+1
View File
@@ -8,6 +8,7 @@ ElvUI plugin that hides and skins the custom CoA (3.3.5) frames not covered by s
- Class resource frames: hiding
- Extra action button frame: skin, anchor, size
- Instance swap frame: skin, anchor, font settings
- Interface/Video/Audio options: skin the widgets ElvUI's own pass misses
- Only highlight unitframes if dispellable by your CoA class.
## Installation