I made another intrinsic element called "AutoScrollFrame" (that I'm retiring in favor of Blizzard's Dragonflight-improved ScrollBox/ScrollView/DataProvider model) that I use across multiple addons simply by naming them differently:
<Frame name="StashAutoScrollFrame" mixin="StashAutoScrollFrameMixin" flattenRenderLayers="true" intrinsic="true">
vs
<Frame name="RematchAutoScrollFrame" mixin="RematchAutoScrollFrameMixin" flattenRenderLayers="true" intrinsic="true">
As you've noted XML is not really suited for versioning.
I did make a non-intrinsic version of AutoScrollFrame in all Lua with primitive versioning (still used in AddonUsage) but it was really unappealing to me. Even moderately complicated all-Lua UIs remind me of old WinForms code when the hierarchical nature of XML (or XAML compared to WinForms) seems more natural and intuitive for parent/child relationships.
|