|
1 | | -local _G = _G |
2 | | -local format, unpack, string = format, unpack, string |
3 | 1 | --- @class MacroToolkit |
4 | 2 | local MT = MacroToolkit |
5 | 3 | MT.skinned = {} |
6 | 4 |
|
7 | | -function MT:Skin(frame) |
8 | | - if true then return end -- disabled for now |
| 5 | +-- credits for reviving the elvui skin: MechaZao @ discord |
| 6 | +function MT:ApplyElvSkin() |
9 | 7 | if not C_AddOns.IsAddOnLoaded("ElvUI") then return end |
10 | 8 | if MT.db.profile.noskin then return end |
11 | | - if not MT.skinned[frame:GetName()] then |
12 | | - MT:LoadElvSkin(frame) |
13 | | - MT.skinned[frame:GetName()] = true |
14 | | - end |
15 | | -end |
16 | | - |
17 | | -function MT:LoadElvSkin(frame) |
18 | | - if true then return end -- disabled for now |
19 | | - local E, L, V, P, G, _ = unpack(ElvUI) |
20 | | - local S = E:GetModule("Skins") |
21 | | - |
22 | | - if E.private.skins.blizzard.enable ~= true or E.private.skins.blizzard.macro ~= true then return end |
23 | | - local buttons |
24 | | - |
25 | | - if frame == MacroToolkitFrame then |
26 | | - S:HandleCloseButton(MacroToolkitFrameCloseButton) |
27 | | - S:HandleScrollBar(MacroToolkitButtonScrollScrollBar) |
28 | | - S:HandleScrollBar(MacroToolkitScrollFrameScrollBar) |
29 | | - S:HandleScrollBar(MacroToolkitFauxScrollFrameScrollBar) |
30 | | - S:HandleScrollBar(MacroToolkitErrorScrollFrameScrollBar) |
31 | | - MacroToolkitFrame:Width(648) |
32 | | - MacroToolkitFlyout:Size(MacroToolkitFlyout:GetWidth() - 7, MacroToolkitFlyout:GetHeight() - 7) |
33 | | - S:HandleNextPrevButton(MacroToolkitFlyout) |
34 | | - MacroToolkitFlyout:ClearAllPoints() |
35 | | - MacroToolkitFlyout:SetPoint("TOPRIGHT", MacroToolkitFrame, "TOPRIGHT", -4, -34) |
36 | | - MacroToolkitCustom:SetPoint("TOPRIGHT", MacroToolkitFlyout, "TOPLEFT", -4, 2) |
37 | 9 |
|
38 | | - for i = 1, 3 do |
39 | | - local tab = _G[string.format("MacroToolkitFrameTab%s", i)] |
40 | | - tab:Height(22) |
41 | | - end |
42 | | - |
43 | | - MacroToolkitFrameTab1:SetPoint("TOPLEFT", MacroToolkitFrame, "TOPLEFT", 85, -39) |
44 | | - MacroToolkitFrameTab2:SetPoint("LEFT", MacroToolkitFrameTab1, "RIGHT", 4, 0) |
45 | | - MacroToolkitFrameTab3:SetPoint("LEFT", MacroToolkitFrameTab2, "RIGHT", 4, 0) |
46 | | - MacroToolkitFrame:StripTextures() |
47 | | - MacroToolkitFrame:SetTemplate("Transparent") |
48 | | - MacroToolkitFrameInset:Kill() |
49 | | - MacroToolkitTextBg:StripTextures() |
50 | | - MacroToolkitTextBg:SetTemplate("Default") |
51 | | - MacroToolkitErrorBg:StripTextures() |
52 | | - MacroToolkitErrorBg:SetTemplate("Default") |
53 | | - MacroToolkitButtonScroll:StripTextures() |
54 | | - MacroToolkitButtonScroll:CreateBackdrop() |
55 | | - MacroToolkitEdit:ClearAllPoints() |
56 | | - MacroToolkitEdit:SetPoint("BOTTOMLEFT", MacroToolkitSelMacroButton, "BOTTOMRIGHT", 10, 0) |
57 | | - MacroToolkitNew:ClearAllPoints() |
58 | | - MacroToolkitNew:SetPoint("BOTTOMRIGHT", -90, 4) |
59 | | - MacroToolkitExtend:ClearAllPoints() |
60 | | - MacroToolkitExtend:SetPoint("LEFT", MacroToolkitDelete, "RIGHT", 80, 0) |
61 | | - MacroToolkitShorten:ClearAllPoints() |
62 | | - MacroToolkitShorten:SetPoint("LEFT", MacroToolkitExtend, "RIGHT", 4, 0) |
63 | | - MacroToolkitErrorBg:ClearAllPoints() |
64 | | - MacroToolkitErrorBg:SetPoint("TOPLEFT", 338, -289) |
65 | | - MacroToolkitErrorBg:SetPoint("BOTTOMRIGHT", -6, 40) |
66 | | - MacroToolkitEnterText:ClearAllPoints() |
67 | | - MacroToolkitEnterText:SetPoint("TOPLEFT", MacroToolkitSelBg, "BOTTOMLEFT", 8, 8) |
68 | | - MacroToolkitErrorLabel:ClearAllPoints() |
69 | | - MacroToolkitErrorLabel:SetPoint("BOTTOMLEFT", MacroToolkitErrorScrollFrame, "TOPLEFT", -3, 10) |
70 | | - S:HandleScrollBar(MacroToolkitButtonScroll) |
71 | | - MacroToolkitOptionsButton:ClearAllPoints() |
72 | | - MacroToolkitOptionsButton:SetPoint("LEFT", MacroToolkitConditions, "RIGHT", 23, 0) |
73 | | - MacroToolkitSelMacroButton:StripTextures() |
74 | | - MacroToolkitSelMacroButton:StyleButton(true) |
75 | | - MacroToolkitSelMacroButton:GetNormalTexture():SetTexture(nil) |
76 | | - MacroToolkitSelMacroButton:SetTemplate("Default") |
77 | | - MacroToolkitSelMacroButton.Icon:SetTexCoord(unpack(E.TexCoords)) |
78 | | - MacroToolkitSelMacroButton.Icon:SetInside() |
79 | | - MacroToolkitLimit:ClearAllPoints() |
80 | | - MacroToolkitLimit:SetPoint("BOTTOM", MacroToolkitTextBg, 0, -12) |
81 | | - buttons = {"MacroToolkitSave", "MacroToolkitCancel", "MacroToolkitDelete", "MacroToolkitNew", "MacroToolkitExit", "MacroToolkitEdit", |
82 | | - "MacroToolkitFrameTab1", "MacroToolkitFrameTab2", "MacroToolkitFrameTab3", "MacroToolkitShorten", "MacroToolkitAddScript", "MacroToolkitAddSlot", "MacroToolkitBackup", |
83 | | - "MacroToolkitRestore", "MacroToolkitClear", "MacroToolkitShare", "MacroToolkitCustom", "MacroToolkitExtend", "MacroToolkitOpen", "MacroToolkitConditions", |
84 | | - "MacroToolkitOptionsButton", "MacroToolkitMacroBox", "MacroToolkitBind"} |
85 | | - end |
| 10 | + local E = unpack(ElvUI) |
| 11 | + local S = E and E:GetModule("Skins", true) |
| 12 | + if not S or type(S.HandleFrame) ~= "function" then return end |
86 | 13 |
|
87 | | - if frame == MacroToolkitScriptFrame then |
88 | | - S:HandleCloseButton(MacroToolkitScriptFrameCloseButton) |
89 | | - S:HandleScrollBar(MacroToolkitScriptScrollScrollBar) |
90 | | - S:HandleScrollBar(MacroToolkitScriptErrorsScrollBar) |
91 | | - MacroToolkitScriptFrame:Height(428) |
92 | | - MacroToolkitScriptFrame:StripTextures() |
93 | | - MacroToolkitScriptFrame:SetTemplate("Transparent") |
94 | | - MacroToolkitScriptFrameInset:Kill() |
95 | | - MacroToolkitScriptScrollBg:StripTextures() |
96 | | - MacroToolkitScriptScrollBg:SetTemplate("Default") |
97 | | - MacroToolkitScriptErrorBg:StripTextures() |
98 | | - MacroToolkitScriptErrorBg:SetTemplate("Default") |
99 | | - MacroToolkitScriptScroll:StripTextures() |
100 | | - MacroToolkitScriptScroll:CreateBackdrop() |
101 | | - MacroToolkitScriptErrors:StripTextures() |
102 | | - MacroToolkitScriptErrors:CreateBackdrop() |
103 | | - MacroToolkitScriptSave:ClearAllPoints() |
104 | | - MacroToolkitScriptSave:SetPoint("BOTTOMRIGHT", -92, 4) |
105 | | - MacroToolkitScriptExit:ClearAllPoints() |
106 | | - MacroToolkitScriptExit:SetPoint("BOTTOMRIGHT", -7, 4) |
107 | | - MacroToolkitScriptDelete:ClearAllPoints() |
108 | | - MacroToolkitScriptDelete:SetPoint("BOTTOMLEFT", 7, 4) |
109 | | - MacroToolkitScriptEnter:SetPoint("TOPLEFT", 10, -44) |
110 | | - MacroToolkitScriptErrorBg:ClearAllPoints() |
111 | | - MacroToolkitScriptErrorBg:SetPoint("BOTTOMLEFT", 7, 31) |
112 | | - buttons = {"MacroToolkitScriptExit", "MacroToolkitScriptDelete", "MacroToolkitScriptSave"} |
113 | | - end |
| 14 | + -- Frames to Skin |
| 15 | + local framesToSkin = { |
| 16 | + "MacroToolkitFrame", |
| 17 | + "MacroToolkitCopyFrame", |
| 18 | + "MacroToolkitBuilderFrame", |
| 19 | + "MacroToolkitButtonScroll", |
| 20 | + "MacroToolkitErrorBg", |
| 21 | + } |
114 | 22 |
|
115 | | - if frame == MacroToolkitBuilderFrame then |
116 | | - S:HandleCloseButton(MacroToolkitBuilderFrameCloseButton) |
117 | | - MacroToolkitBuilderFrame:StripTextures() |
118 | | - MacroToolkitBuilderFrame:SetTemplate("Transparent") |
119 | | - MacroToolkitBuilderFrameInset:Kill() |
120 | | - MacroToolkitBuilderInsert:ClearAllPoints() |
121 | | - MacroToolkitBuilderInsert:SetPoint("RIGHT", MacroToolkitBuilderCancel, "LEFT", -4, 0) |
122 | | - buttons = {"MacroToolkitBuilderCancel", "MacroToolkitBuilderInsert"} |
123 | | - end |
| 23 | + -- Buttons to Skin |
| 24 | + local buttonsToSkin = { |
| 25 | + "MacroToolkitSave", |
| 26 | + "MacroToolkitCancel", |
| 27 | + "MacroToolkitDelete", |
| 28 | + "MacroToolkitNew", |
| 29 | + "MacroToolkitExit", |
| 30 | + "MacroToolkitEdit", |
| 31 | + "MacroToolkitBackup", |
| 32 | + "MacroToolkitBind", |
| 33 | + "MacroToolkitRestore", |
| 34 | + "MacroToolkitClear", |
| 35 | + "MacroToolkitShare", |
| 36 | + "MacroToolkitOptionsButton", |
| 37 | + "MacroToolkitCustom", |
| 38 | + "MacroToolkitAddScript", |
| 39 | + "MacroToolkitAddSlot", |
| 40 | + "MacroToolkitExtend", |
| 41 | + "MacroToolkitShorten", |
| 42 | + "MacroToolkitConditions", |
| 43 | + "MacroToolkitBuilderCancel", |
| 44 | + "MacroToolkitBuilderInsert", |
| 45 | + "MacroToolkitCExit", |
| 46 | + "MacroToolkitCopy", |
| 47 | + } |
124 | 48 |
|
125 | | - if frame == MacroToolkitCopyFrame then |
126 | | - S:HandleCloseButton(MacroToolkitCopyFrameCloseButton) |
127 | | - S:HandleScrollBar(MacroToolkitCScrollFrameScrollBar) |
128 | | - S:HandleScrollBar(MacroToolkitCFauxScrollFrameScrollBar) |
129 | | - MacroToolkitCopyFrame:StripTextures() |
130 | | - MacroToolkitCopyFrame:SetTemplate("Transparent") |
131 | | - MacroToolkitCopyFrameInset:Kill() |
132 | | - MacroToolkitCTextBg:StripTextures() |
133 | | - MacroToolkitCTextBg:SetTemplate("Default") |
134 | | - MacroToolkitCSelMacroButton:StripTextures() |
135 | | - MacroToolkitCSelMacroButton:StyleButton(true) |
136 | | - MacroToolkitCSelMacroButton:GetNormalTexture():SetTexture(nil) |
137 | | - MacroToolkitCSelMacroButton:SetTemplate("Default") |
138 | | - MacroToolkitCSelMacroButton.Icon:SetTexCoord(unpack(E.TexCoords)) |
139 | | - MacroToolkitCSelMacroButton.Icon:SetInside() |
140 | | - buttons = {"MacroToolkitCExit", "MacroToolkitCopy"} |
141 | | - end |
| 49 | + -- Tabs to Skin |
| 50 | + local tabsToSkin = { |
| 51 | + "MacroToolkitFrameTab1", |
| 52 | + "MacroToolkitFrameTab2", |
| 53 | + "MacroToolkitFrameTab3", |
| 54 | + } |
142 | 55 |
|
143 | | - if frame == MacroToolkitPopup then |
144 | | - S:HandleCheckBox(MacroToolkitSpellCheck) |
145 | | - --S:HandleScrollBar(MacroToolkitPopupScrollScrollBar) |
146 | | - S:HandleScrollBar(MacroToolkitPopupIcons.scrollFrame.ScrollBar) |
147 | | - MacroToolkitPopup:StripTextures() |
148 | | - MacroToolkitPopup:SetTemplate("Transparent") |
149 | | - --MacroToolkitPopupScroll:StripTextures() |
150 | | - --MacroToolkitPopupScroll:CreateBackdrop() |
151 | | - --MacroToolkitPopupScroll.backdrop:SetPoint("TOPLEFT", 51, 2) |
152 | | - --MacroToolkitPopupScroll.backdrop:SetPoint("BOTTOMRIGHT", -4, 4) |
153 | | - MacroToolkitPopupIcons:StripTextures() |
154 | | - MacroToolkitPopupIcons:CreateBackdrop() |
155 | | - MacroToolkitPopupIcons.backdrop:SetPoint("TOPLEFT", 10, 2) |
156 | | - MacroToolkitPopupIcons.backdrop:SetPoint("BOTTOMRIGHT", -4, -16) |
157 | | - MacroToolkitFramePopupL:SetTexture(nil) |
158 | | - MacroToolkitFramePopupM:SetTexture(nil) |
159 | | - MacroToolkitFramePopupR:SetTexture(nil) |
160 | | - S:HandleEditBox(MacroToolkitPopupEdit) |
161 | | - S:HandleEditBox(MacroToolkitSearchBox) |
162 | | - MacroToolkitPopupCancel:ClearAllPoints() |
163 | | - MacroToolkitPopupCancel:SetPoint("BOTTOMRIGHT", -11, 9) |
164 | | - MacroToolkitPopupOk:ClearAllPoints() |
165 | | - MacroToolkitPopupOk:SetPoint("RIGHT", MacroToolkitPopupCancel, "LEFT", -6, 0) |
166 | | - MacroToolkitPopupGoLarge:ClearAllPoints() |
167 | | - MacroToolkitPopupGoLarge:SetPoint("TOPRIGHT", -13, -59) |
168 | | - MacroToolkitPopup:HookScript("OnShow", |
169 | | - function(this) |
170 | | - this:ClearAllPoints() |
171 | | - this:SetPoint("TOPLEFT", MacroToolkitFrame, "TOPRIGHT", 5, -2) |
172 | | - end) |
173 | | - buttons = {"MacroToolkitPopupOk", "MacroToolkitPopupCancel", "MacroToolkitPopupGoLarge"} |
| 56 | + -- Icon Grid Buttons |
| 57 | + for i = 1, max(_G.MAX_ACCOUNT_MACROS, _G.MAX_CHARACTER_MACROS, MT.MAX_EXTRA_MACROS) do |
| 58 | + local buttonName = "MacroToolkitButton" .. i |
| 59 | + local button = _G[buttonName] |
| 60 | + if button and not self.skinned[button] then |
| 61 | + self.skinned[button] = true |
| 62 | + S:HandleButton(button) |
| 63 | + end |
174 | 64 | end |
175 | 65 |
|
176 | | - if frame == MacroToolkitBindingFrame then |
177 | | - S:HandleCheckBox(MacroToolkitBindingFrame.profile) |
178 | | - MacroToolkitBindingFrame:StripTextures() |
179 | | - MacroToolkitBindingFrame:SetTemplate("Transparent") |
180 | | - buttons = {"MacroToolkitBindButton1", "MacroToolkitBindButton2", "MacroToolkitBindingCancel", "MacroToolkitBindingOk", "MacroToolkitUnbind"} |
| 66 | + -- Skin frames |
| 67 | + for _, frameName in ipairs(framesToSkin) do |
| 68 | + local frame = _G[frameName] |
| 69 | + if frame and not self.skinned[frame] then |
| 70 | + self.skinned[frame] = true |
| 71 | + S:HandleFrame(frame, true) |
| 72 | + frame:SetTemplate("Transparent") |
| 73 | + end |
181 | 74 | end |
182 | 75 |
|
183 | | - if frame == MacroToolkitRestoreFrame then |
184 | | - MacroToolkitRestoreFrame:StripTextures() |
185 | | - MacroToolkitRestoreFrame:SetTemplate("Transparent") |
186 | | - MacroToolkitRestoreFrame:HookScript("OnShow", |
187 | | - function(this) |
188 | | - this:ClearAllPoints() |
189 | | - this:SetPoint("TOPLEFT", MacroToolkitFrame, "TOPRIGHT", 5, -2) |
190 | | - end) |
191 | | - buttons = {"MacroToolkitRestoreRestore", "MacroToolkitRestoreCancel", "MacroToolkitRestoreDelete"} |
| 76 | + -- Skin buttons |
| 77 | + for _, buttonName in ipairs(buttonsToSkin) do |
| 78 | + local button = _G[buttonName] |
| 79 | + if button and not self.skinned[button] then |
| 80 | + self.skinned[button] = true |
| 81 | + S:HandleButton(button) |
| 82 | + end |
192 | 83 | end |
193 | 84 |
|
194 | | - if frame == MacroToolkitSharePopup then |
195 | | - MacroToolkitSharePopup:StripTextures() |
196 | | - MacroToolkitSharePopup:SetTemplate("Transparent") |
197 | | - S:HandleEditBox(MacroToolkitShareEdit) |
198 | | - buttons = {"MacroToolkitShareOK", "MacroToolkitShareCancel"} |
| 85 | + -- Skin tabs |
| 86 | + for _, tabName in ipairs(tabsToSkin) do |
| 87 | + local tab = _G[tabName] |
| 88 | + if tab and not self.skinned[tab] then |
| 89 | + self.skinned[tab] = true |
| 90 | + S:HandleTab(tab) |
| 91 | + end |
199 | 92 | end |
200 | 93 |
|
201 | | ---[[ |
202 | | - local buttons = { |
203 | | - "MacroToolkitSave", "MacroToolkitCancel", "MacroToolkitDelete", "MacroToolkitNew", "MacroToolkitExit", "MacroToolkitEdit", |
204 | | - "MacroToolkitFrameTab1", "MacroToolkitFrameTab2", "MacroToolkitPopupOk", "MacroToolkitPopupCancel", "MacroToolkitShorten", |
205 | | - "MacroToolkitAddScript", "MacroToolkitAddSlot", "MacroToolkitBackup", "MacroToolkitRestore", "MacroToolkitClear", |
206 | | - "MacroToolkitShare", "MacroToolkitRestoreRestore", "MacroToolkitRestoreCancel", "MacroToolkitRestoreDelete", |
207 | | - "MacroToolkitCustom", "MacroToolkitScriptExit", "MacroToolkitScriptDelete", "MacroToolkitScriptSave", "MacroToolkitExtend", |
208 | | - "MacroToolkitOpen", "MacroToolkitConditions", "MacroToolkitBuilderCancel", "MacroToolkitBuilderInsert", "MacroToolkitOptionsButton", |
209 | | - "MacroToolkitMacroBox", "MacroToolkitShareOK", "MacroToolkitShareCancel", "MacroToolkitBindButton1", "MacroToolkitBindButton2", |
210 | | - "MacroToolkitBindingCancel", "MacroToolkitBindingOk", "MacroToolkitUnbind", "MacroToolkitBind", "MacroToolkitCExit", "MacroToolkitCopy", |
| 94 | + -- Skin scrollbars with consistent style |
| 95 | + local scrollBars = { |
| 96 | + "MacroToolkitErrorScrollFrameScrollBar", |
| 97 | + "MacroToolkitScrollFrameScrollBar", |
| 98 | + "MacroToolkitButtonScrollScrollBar", |
| 99 | + "MacroToolkitFauxScrollFrameScrollBar", |
211 | 100 | } |
212 | | -]]-- |
213 | | - if buttons then |
214 | | - for i = 1, #buttons do |
215 | | - _G[buttons[i]]:StripTextures() |
216 | | - S:HandleButton(_G[buttons[i]]) |
| 101 | + for _, scrollBarName in ipairs(scrollBars) do |
| 102 | + local scrollBar = _G[scrollBarName] |
| 103 | + if scrollBar and not self.skinned[scrollBar] then |
| 104 | + self.skinned[scrollBar] = true |
| 105 | + S:HandleScrollBar(scrollBar) |
| 106 | + scrollBar:SetTemplate("Transparent") |
217 | 107 | end |
218 | 108 | end |
219 | 109 |
|
220 | | - if frame == MacroToolkitFrame or frame == MacroToolkitCopyFrame or frame == MacroToolkitPopup then |
221 | | - for i = 1, MT.MAX_EXTRA_MACROS do |
222 | | - local b = _G[format("MacroToolkitButton%d", i)] |
223 | | - local c = _G[format("MacroToolkitCButton%d", i)] |
224 | | - local t = _G[format("MacroToolkitButton%dIcon", i)] |
225 | | - local ct = _G[format("MacroToolkitCButton%dIcon", i)] |
226 | | - local pb = _G[format("MacroToolkitPopupButton%d", i)] |
227 | | - local pt = _G[format("MacroToolkitPopupButton%dIcon", i)] |
228 | | - if b then |
229 | | - b:StripTextures() |
230 | | - b:CreateBackdrop('Default') |
231 | | - b:StyleButton(true) |
232 | | - --b:SetTemplate("Default", true) |
233 | | - end |
234 | | - if c then |
235 | | - c:StripTextures() |
236 | | - c:CreateBackdrop('Default') |
237 | | - c:StyleButton(true) |
238 | | - --c:SetTemplate("Default", true) |
239 | | - end |
240 | | - if t then |
241 | | - t:SetTexCoord(unpack(E.TexCoords)) |
242 | | - t:SetInside() |
243 | | - end |
244 | | - if ct then |
245 | | - ct:SetTexCoord(unpack(E.TexCoords)) |
246 | | - ct:SetInside() |
247 | | - end |
248 | | - if pb then |
249 | | - pb:StripTextures() |
250 | | - pb:CreateBackdrop('Default') |
251 | | - pb:StyleButton(true) |
252 | | - --pb:SetTemplate("Default") |
253 | | - end |
254 | | - if pt then |
255 | | - pt:SetTexCoord(unpack(E.TexCoords)) |
256 | | - pt:SetInside() |
257 | | - end |
258 | | - end |
| 110 | + -- Arrow Button (Flyout) |
| 111 | + local flyoutButton = _G["MacroToolkitFlyout"] |
| 112 | + if flyoutButton and not self.skinned[flyoutButton] then |
| 113 | + self.skinned[flyoutButton] = true |
| 114 | + S:HandleNextPrevButton(flyoutButton) |
259 | 115 | end |
260 | | - --S:RegisterSkin("MacroToolkit", LoadSkin) |
261 | 116 | end |
0 commit comments