Hide unsupported export options cross-version
Hide export/import/clear options for features the running client can't use,
instead of showing entries that fail or no-op on the wrong client:
Cooldown Manager: gate on C_AddOns.IsAddOnLoaded("Blizzard_CooldownViewer").
The C_CooldownViewer namespace (incl. GetLayoutData/SetLayoutData and
IsCooldownViewerAvailable) is present on Classic Era, so a namespace check
leaks; the Blizzard_CooldownViewer addon only loads on retail.
Click Cast Bindings: gate on the C_ClickBindings namespace, which is
genuinely absent on Classic.
Pet Action Bar: gate on the player's class (HUNTER/WARLOCK/DEATHKNIGHT/MAGE).
Routes the GUI export/ignore menu, clear menu, and options.lua "Remove all"
buttons through MySlot:Is*Supported(), and gates the functional export/recover/
clear paths. options.lua reflows the clear buttons so hidden entries leave no gap.
Also make the in-game macro test use the authoritative macro index from the
live list rather than CreateMacro's return (not the macro index on Classic Era),
and fix the in-game cooldown test skip-guard to use IsCooldownManagerSupported().
Co-authored-by: Copilot [email protected]
Address PR review: fix clear-button spacing and mage pet gating
options.lua: anchor the "allow clear on import" checkbox at rowy (not
rowy - 30); rowy already points to the next free row after the last visible
clear button, so subtracting another 30px left a blank row / pushed the
checkbox down on retail.
Myslot.lua: mages only get a controllable Water Elemental pet bar on WotLK+
(interface >= 30000), so gate MAGE pet support on GetBuildInfo instead of
treating it as pet-capable on every client (it never is on Vanilla/TBC).
ci/wow_stubs.lua: make GetBuildInfo's interface version stub-overridable.