Nenue@10
|
1 local B = select(2,...).frame
|
Nenue@10
|
2 local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame')
|
Nenue@10
|
3 local print = B.print('SetStyle')
|
Nenue@10
|
4 -------------------------------------------------------------
|
Nenue@10
|
5 --- Deals with swapping between different color palettes
|
Nenue@10
|
6 ---
|
Nenue@10
|
7
|
Nenue@10
|
8 local titleFont, textFont = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Regular.ttf]]
|
Nenue@14
|
9 local titleSize, textSize = 16, 15
|
Nenue@10
|
10 local titleOutline, textOutline = "OUTLINE", "OUTLINE"
|
Nenue@14
|
11 local titleSpacing, textSpacing = 3, 1
|
Nenue@13
|
12 local unpack, type, pairs, tconcat = unpack, type, pairs, table.concat
|
Nenue@10
|
13 local wrapperHeadFont, wrapperHeadSize, wrapperHeadOutline = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 16, 'NONE'
|
Nenue@14
|
14 local headerFont, headerSize = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 24
|
Nenue@14
|
15 local headerOutline, headerSpacing = 'OUTLINE', 2
|
Nenue@10
|
16
|
Nenue@13
|
17
|
Nenue@14
|
18 mod.defaults.Wrapper = {
|
Nenue@14
|
19 WrapperPoint = 'TOPRIGHT',
|
Nenue@14
|
20 WrapperFloatX = -25,
|
Nenue@14
|
21 WrapperFloatV = 'TOP',
|
Nenue@14
|
22 WrapperFloatY = -200,
|
Nenue@14
|
23
|
Nenue@14
|
24 WrapperWidth = 270,
|
Nenue@14
|
25 WrapperHeight = 600,
|
Nenue@10
|
26 }
|
Nenue@14
|
27 mod.defaults.Tracker = {
|
Nenue@14
|
28 HeaderHeight = 24,
|
Nenue@14
|
29 }
|
Nenue@14
|
30
|
Nenue@10
|
31 mod.defaults.Style = {
|
Nenue@13
|
32 Format = {
|
Nenue@13
|
33 Frame = {
|
Nenue@13
|
34 Width = 270,
|
Nenue@13
|
35 },
|
Nenue@13
|
36 title = {
|
Nenue@14
|
37 Indent = 0,
|
Nenue@14
|
38 Spacing = 0,
|
Nenue@13
|
39 },
|
Nenue@13
|
40 status = {
|
Nenue@14
|
41 Indent = 5,
|
Nenue@14
|
42 Spacing = 0,
|
Nenue@13
|
43 }
|
Nenue@13
|
44 },
|
Nenue@13
|
45 FontBank = {
|
Nenue@10
|
46 ['Normal'] = _G.VeneerCriteriaFontNormal,
|
Nenue@10
|
47 ['Progress'] = _G.VeneerCriteriaFontProgress,
|
Nenue@10
|
48 ['Complete'] = _G.VeneerCriteriaFontComplete,
|
Nenue@10
|
49 ['Failed'] = _G.VeneerCriteriaFontFailed,
|
Nenue@10
|
50 },
|
Nenue@10
|
51 Normal = {
|
Nenue@10
|
52 title = {
|
Nenue@10
|
53 TextColor = {1, 1, 1, 1},
|
Nenue@10
|
54 Width = 270,
|
Nenue@14
|
55 Spacing = 0,
|
Nenue@14
|
56 Indent = 2,
|
Nenue@10
|
57 },
|
Nenue@10
|
58 titlebg = {
|
Nenue@10
|
59 Background = {0, 0, 0, 1},
|
Nenue@10
|
60 Width = 270,
|
Nenue@10
|
61 },
|
Nenue@10
|
62 status = {
|
Nenue@10
|
63 Width = 270,
|
Nenue@14
|
64 Spacing = 0,
|
Nenue@10
|
65 },
|
Nenue@10
|
66 statusbg = {
|
Nenue@10
|
67 Width = 270,
|
Nenue@10
|
68 },
|
Nenue@10
|
69 Frame = {
|
Nenue@10
|
70 Width = 270,
|
Nenue@10
|
71 }
|
Nenue@10
|
72 },
|
Nenue@10
|
73 Wrapper = {
|
Nenue@10
|
74 Frame = {
|
Nenue@10
|
75 BackgroundComplex = {Left = {'', 0, 0.4, 0,1, 100}, Right={'', 0.6,1,0,1}, Tile = {'', 0.4,.6,0,1, 100}}, },
|
Nenue@10
|
76 title = {
|
Nenue@10
|
77 Font = {wrapperHeadFont, wrapperHeadSize, wrapperHeadOutline},
|
Nenue@10
|
78 Spacing = 4,}
|
Nenue@10
|
79 },
|
Nenue@10
|
80 Tracker = {
|
Nenue@10
|
81 Normal = {
|
Nenue@10
|
82 title = {
|
Nenue@10
|
83 Font = {headerFont, headerSize, headerOutline}, Spacing = headerSpacing,
|
Nenue@14
|
84 Indent = 2,
|
Nenue@14
|
85 TextColor = {1, .9, .2, 1},
|
Nenue@10
|
86 },
|
Nenue@10
|
87 titlebg = {
|
Nenue@16
|
88 Gradient = {'VERTICAL', MinColor = {0,0,0,0.25}, MaxColor = {0,0,0,.15}},
|
Nenue@10
|
89 }
|
Nenue@10
|
90 }
|
Nenue@10
|
91 },
|
Nenue@10
|
92 TrackerBlock = {
|
Nenue@10
|
93 Normal = {
|
Nenue@10
|
94 titlebg = {
|
Nenue@14
|
95 Indent = 2,
|
Nenue@16
|
96 Gradient = { 'HORIZONTAL', MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .14}},
|
Nenue@10
|
97 },
|
Nenue@10
|
98 title = {
|
Nenue@14
|
99 TextColor = {1,1,1,0.5},
|
Nenue@10
|
100 Font = {titleFont, titleSize, titleOutline},
|
Nenue@10
|
101 Spacing = titleSpacing,
|
Nenue@10
|
102 },
|
Nenue@10
|
103 status = {
|
Nenue@14
|
104 TextColor = {1,1,1,0.5},
|
Nenue@14
|
105 Font = {textFont, textSize, textOutline},
|
Nenue@14
|
106 Spacing = textSpacing,
|
Nenue@10
|
107 },
|
Nenue@10
|
108 statusbg = {
|
Nenue@16
|
109 Gradient = { 'HORIZONTAL', MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .11}},
|
Nenue@10
|
110 }
|
Nenue@10
|
111 },
|
Nenue@10
|
112 Super = {
|
Nenue@10
|
113 title = {
|
Nenue@14
|
114 TextColor = {1,1,1,1},
|
Nenue@10
|
115 Font = {titleFont, titleSize, titleOutline},
|
Nenue@10
|
116 Spacing = titleSpacing, BackgroundFullWidth = true
|
Nenue@10
|
117 },
|
Nenue@10
|
118 titlebg = {
|
Nenue@16
|
119 Gradient = { 'HORIZONTAL', MinColor = {0, .7, .6, 0}, MaxColor = {0, .7, .6, 0.23}},
|
Nenue@10
|
120 },
|
Nenue@10
|
121 status = {
|
Nenue@14
|
122 TextColor = {1,1,1,1},
|
Nenue@14
|
123 Font = {textFont, textSize, textOutline},
|
Nenue@14
|
124 Spacing = textSpacing,
|
Nenue@10
|
125 },
|
Nenue@10
|
126 statusbg = {
|
Nenue@16
|
127 Gradient = { 'HORIZONTAL', MinColor = {0, .7, .6, 0}, MaxColor = {0, .7, .6, 0.23} },
|
Nenue@10
|
128 },
|
Nenue@10
|
129 },
|
Nenue@10
|
130 MouseDown = {
|
Nenue@10
|
131 title = {
|
Nenue@10
|
132 Font = {titleFont, titleSize, titleOutline},
|
Nenue@10
|
133 Spacing = titleSpacing,
|
Nenue@10
|
134 },
|
Nenue@10
|
135 titlebg = {
|
Nenue@16
|
136 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 1}, MaxColor = {0.2, .4, 1, .4}, },
|
Nenue@10
|
137 },
|
Nenue@10
|
138 status = {
|
Nenue@10
|
139 Font = {textFont, textSize, textOutline},
|
Nenue@10
|
140 Spacing = textSpacing,
|
Nenue@10
|
141 },
|
Nenue@10
|
142 statusbg = {
|
Nenue@16
|
143 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 1}, MaxColor = {0.2, .4, 1, .2}, },
|
Nenue@10
|
144 }
|
Nenue@10
|
145 },
|
Nenue@10
|
146 Complete = {
|
Nenue@10
|
147 title = {
|
Nenue@14
|
148 TextColor = {1,1,1,0.5},
|
Nenue@10
|
149 Font = {titleFont, titleSize, titleOutline}, Spacing = titleSpacing,
|
Nenue@10
|
150 },
|
Nenue@10
|
151 titlebg = {
|
Nenue@16
|
152 Gradient = {'HORIZONTAL', MinColor = {0, 1, 0, 0}, MaxColor = {0, 1, 0, 0.34}, },
|
Nenue@10
|
153 },
|
Nenue@10
|
154 status = {
|
Nenue@14
|
155 TextColor = {1,1,1,0.5},
|
Nenue@10
|
156 Font = {textFont, textSize, textOutline}, Spacing = textSpacing,
|
Nenue@10
|
157 },
|
Nenue@10
|
158 statusbg = {
|
Nenue@16
|
159 Gradient = {'HORIZONTAL', MinColor = {0, 1, 0, 0}, MaxColor = {0, 1, 0, .25}, },
|
Nenue@10
|
160 }
|
Nenue@10
|
161 },
|
Nenue@13
|
162 Daily = {
|
Nenue@13
|
163 titlebg = {
|
Nenue@16
|
164 Gradient = {'HORIZONTAL', MinColor = {0, .4, 1, 0.34}, MaxColor = {0, 0.4, 1, .17}, },
|
Nenue@13
|
165 },
|
Nenue@13
|
166 statusbg = {
|
Nenue@16
|
167 Gradient = {'HORIZONTAL', MinColor = {0, .4, 1, 0.25}, MaxColor = {0, 0.4, 1, .12}, },
|
Nenue@13
|
168 },
|
Nenue@13
|
169 },
|
Nenue@16
|
170 AutoQuest = {
|
Nenue@16
|
171 Normal = {
|
Nenue@16
|
172 titlebg = {
|
Nenue@16
|
173 Indent = 2,
|
Nenue@16
|
174 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .14}},
|
Nenue@16
|
175 },
|
Nenue@16
|
176 title = {
|
Nenue@16
|
177 TextColor = {1,1,1,1},
|
Nenue@16
|
178 Font = {titleFont, titleSize, titleOutline},
|
Nenue@16
|
179 Spacing = titleSpacing,
|
Nenue@16
|
180 },
|
Nenue@16
|
181 status = {
|
Nenue@16
|
182 TextColor = {0,1,0,1},
|
Nenue@16
|
183 Font = {textFont, textSize, textOutline},
|
Nenue@16
|
184 Spacing = textSpacing,
|
Nenue@16
|
185 },
|
Nenue@16
|
186 statusbg = {
|
Nenue@16
|
187 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .11}},
|
Nenue@16
|
188 }
|
Nenue@16
|
189 },
|
Nenue@16
|
190 },
|
Nenue@16
|
191 Cheevs = {
|
Nenue@10
|
192 Normal = {
|
Nenue@10
|
193
|
Nenue@10
|
194 title = {
|
Nenue@10
|
195 Font = {titleFont, titleSize, titleOutline},
|
Nenue@10
|
196 Spacing = titleSpacing,
|
Nenue@10
|
197 },
|
Nenue@10
|
198 titlebg = {
|
Nenue@16
|
199 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 0.45}, MaxColor = {.7, 0, 0.9, .19}},
|
Nenue@10
|
200
|
Nenue@10
|
201 },
|
Nenue@10
|
202 status = {
|
Nenue@10
|
203 Font = {textFont, textSize, textOutline},
|
Nenue@10
|
204 Spacing = textSpacing,
|
Nenue@10
|
205 },
|
Nenue@10
|
206 statusbg = {
|
Nenue@16
|
207 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 0.25}, MaxColor = {.7, 0, 0.9, .12}},
|
Nenue@10
|
208 },
|
Nenue@10
|
209 },
|
Nenue@10
|
210 Complete = {
|
Nenue@10
|
211 title = {
|
Nenue@10
|
212 Font = {titleFont, titleSize, titleOutline},
|
Nenue@10
|
213 Spacing = titleSpacing,
|
Nenue@10
|
214 },
|
Nenue@10
|
215 titlebg = {
|
Nenue@16
|
216 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 0.45}, MaxColor = {.7, 0, 0.9, .19}},
|
Nenue@10
|
217 },
|
Nenue@10
|
218 status = {
|
Nenue@10
|
219 Font = {textFont, textSize, textOutline},
|
Nenue@10
|
220 Spacing = textSpacing,
|
Nenue@10
|
221 },
|
Nenue@10
|
222 statusbg = {
|
Nenue@16
|
223 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 0.25}, MaxColor = {.7, 0, 0.9, .12}},
|
Nenue@10
|
224 },
|
Nenue@10
|
225 },
|
Nenue@10
|
226 }
|
Nenue@10
|
227 }
|
Nenue@10
|
228 }
|
Nenue@10
|
229
|
Nenue@10
|
230 local style_cache_func = {}
|
Nenue@10
|
231 local block_vars = {
|
Nenue@10
|
232 ['titleSize'] = {'titleWidth', 'titleHeight'},
|
Nenue@10
|
233 ['FrameSize'] = {'width', 'height'}
|
Nenue@10
|
234 }
|
Nenue@10
|
235 local attrib_vars = {
|
Nenue@10
|
236 ['Font'] = {'height'},
|
Nenue@10
|
237 }
|
Nenue@10
|
238
|
Nenue@10
|
239 mod.BlockStyleCache = {}
|
Nenue@10
|
240 local style_cache = mod.BlockStyleCache
|
Nenue@10
|
241 mod.regions = {}
|
Nenue@10
|
242 mod.regionStyles = {}
|
Nenue@10
|
243 mod.SetBlockStyle = function(frame, frameType, ...)
|
Nenue@10
|
244 -- var names intended to reflect argument order
|
Nenue@16
|
245 print('|cFFFFFF00'..frame:GetName()..'|r', frameType, ...)
|
Nenue@10
|
246 --@debug@
|
Nenue@10
|
247 local c = mod.defaults.Normal
|
Nenue@10
|
248 local style_list = {... }
|
Nenue@10
|
249 local styleName = frameType .. '-' .. table.concat(style_list,'')
|
Nenue@16
|
250 local previousClass = mod.Conf.Style[frameType]
|
Nenue@10
|
251
|
Nenue@10
|
252 if not style_cache[styleName] then
|
Nenue@10
|
253 local style = {}
|
Nenue@10
|
254
|
Nenue@10
|
255 if mod.defaults.Style[frameType] then
|
Nenue@10
|
256 print(' setting style class |cFF00FFFF'..frameType)
|
Nenue@10
|
257 else
|
Nenue@10
|
258 print(' resorting to class Normal (missing |cFFFF8800'.. frameType..'|r)')
|
Nenue@10
|
259 end
|
Nenue@10
|
260 local normal = mod.defaults.Style.Normal
|
Nenue@10
|
261 local root = mod.defaults.Style[frameType] or normal
|
Nenue@10
|
262 for i, className in ipairs(style_list) do
|
Nenue@16
|
263 local class = normal
|
Nenue@16
|
264 if previousClass and previousClass[className] then
|
Nenue@16
|
265 class = previousClass[className]
|
Nenue@16
|
266 print(' ChildClass |cFFFF0088'.. className .. '|r')
|
Nenue@16
|
267 elseif root[className] then
|
Nenue@16
|
268 class = root[className]
|
Nenue@10
|
269 print(' SubClass |cFF0088FF'.. className .. '|r')
|
Nenue@10
|
270 elseif normal[className] then
|
Nenue@16
|
271 class = normal[className]
|
Nenue@10
|
272 print(' SubClass Normal.|cFFFF0088'..className..'|r')
|
Nenue@10
|
273 else
|
Nenue@16
|
274 print(' SubClass not found '..className..'')
|
Nenue@10
|
275 end
|
Nenue@16
|
276 previousClass = class
|
Nenue@16
|
277
|
Nenue@10
|
278 for elementName, element in pairs(class) do
|
Nenue@10
|
279 if not elementName:match('^%u') then
|
Nenue@10
|
280 print(' scanning Element |cFF8800FF'.. elementName ..'|r')
|
Nenue@10
|
281 if not style[elementName] then
|
Nenue@10
|
282 style[elementName] = {}
|
Nenue@10
|
283 end
|
Nenue@10
|
284 for key, value in pairs(element) do
|
Nenue@10
|
285 if mod.SetBlockAttribute[key] then
|
Nenue@10
|
286 print(' |cFF00FF00'..elementName..'|r.|cFF00FFFF'..key..' =', (type(value) == 'table' and ('{'..table.concat(value,', ')..'}') or tostring(value)))
|
Nenue@10
|
287 style[elementName][key] = value
|
Nenue@10
|
288 end
|
Nenue@10
|
289
|
Nenue@10
|
290 end
|
Nenue@10
|
291 end
|
Nenue@10
|
292
|
Nenue@10
|
293 end
|
Nenue@10
|
294 end
|
Nenue@10
|
295
|
Nenue@10
|
296 for k, elements in pairs(mod.defaults.Style.Normal) do
|
Nenue@10
|
297 if not style[k] and type(elements) ~= 'table' then
|
Nenue@10
|
298 style[k] = elements
|
Nenue@10
|
299 end
|
Nenue@10
|
300 end
|
Nenue@10
|
301
|
Nenue@10
|
302
|
Nenue@10
|
303 print('result for: ', frame:GetName())
|
Nenue@10
|
304 for k,v in pairs(style) do
|
Nenue@10
|
305 if type(v) == 'table' and not k:match('^%u') then
|
Nenue@10
|
306 for kk, vv in pairs(v) do
|
Nenue@16
|
307 print(' |cFFFFFF00'..k..'|r.|cFF00FF00'..kk..'|r =', (type(vv) == 'table' and ('{'..table.concat(vv,', ')..'}') or tostring(vv)))
|
Nenue@10
|
308 end
|
Nenue@10
|
309 else
|
Nenue@10
|
310 print(' |cFFFFFFFF' .. k ..'|r =', tostring(v))
|
Nenue@10
|
311 end
|
Nenue@10
|
312 end
|
Nenue@10
|
313 style_cache[styleName] = style
|
Nenue@10
|
314 end
|
Nenue@10
|
315
|
Nenue@10
|
316 local style = style_cache[styleName]
|
Nenue@10
|
317
|
Nenue@10
|
318 if not style_cache_func[styleName] then
|
Nenue@10
|
319 local code =
|
Nenue@10
|
320 "return function (frame)\n"..
|
Nenue@10
|
321 " local func = Veneer.ObjectiveTracker.SetBlockAttribute\n"..
|
Nenue@11
|
322 " local cache = Veneer.ObjectiveTracker.BlockStyleCache"
|
Nenue@11
|
323 --.. " print('CacheFunc', '|cFFFFFF00SET|r "..styleName.." |cFFFFFF00ON|r', frame:GetName()) "
|
Nenue@10
|
324
|
Nenue@10
|
325 for elementName, styleset in pairs(style) do
|
Nenue@10
|
326 code = code ..
|
Nenue@10
|
327 "\n if frame['"..elementName.."'] then"
|
Nenue@10
|
328
|
Nenue@10
|
329 for attributeName, value in pairs(styleset) do
|
Nenue@10
|
330 if mod.SetBlockAttribute[attributeName] then
|
Nenue@16
|
331 print(' add function '..elementName..':'.. attributeName ..'(', (type(value) == 'table' and ('{'..table.concat(value,', ')..'}') or tostring(value)), ')')
|
Nenue@10
|
332
|
Nenue@10
|
333
|
Nenue@10
|
334 --mod.SetBlockAttribute[attributeName](region, value)
|
Nenue@11
|
335 code = code
|
Nenue@11
|
336 --.. "\n print('CacheFunc', ' applying', '|cFF00FFFF" .. attributeName .. "|r to', '|cFF0088FF"..elementName.."|r', cache['"..styleName.."']['"..elementName.."']['".. attributeName .."'])"
|
Nenue@11
|
337 .. "\n\n func['" .. attributeName .. "'](frame['"..elementName.."'],"..
|
Nenue@10
|
338 " cache['"..styleName.."']['"..elementName.."']['".. attributeName .."'])"
|
Nenue@10
|
339
|
Nenue@10
|
340 --- Set any frame.blah variables used in Updates
|
Nenue@10
|
341 if block_vars[elementName .. attributeName] then
|
Nenue@10
|
342 print('|cFF008800BVar|r', elementName..attributeName)
|
Nenue@10
|
343 for i, blockKey in ipairs(block_vars[elementName .. attributeName]) do
|
Nenue@10
|
344 print(' assigning |cFF008800'..blockKey..'|r')
|
Nenue@10
|
345 frame[blockKey] = (type(value) == 'table') and value[i] or value
|
Nenue@10
|
346 end
|
Nenue@10
|
347 end
|
Nenue@10
|
348
|
Nenue@10
|
349 end
|
Nenue@10
|
350 end
|
Nenue@10
|
351 code = code ..
|
Nenue@10
|
352 "\n else"..
|
Nenue@11
|
353 --"\n print('CacheFunc', ' |cFFFF4400missing', frame:GetName()..'."..elementName.."')"..
|
Nenue@10
|
354 "\n end"
|
Nenue@10
|
355 end
|
Nenue@10
|
356 code = code .. "\nend"
|
Nenue@10
|
357 local result = assert(loadstring(code))
|
Nenue@10
|
358 print('storing style func', styleName, result())
|
Nenue@10
|
359 style_cache_func[styleName] = result()
|
Nenue@10
|
360
|
Nenue@10
|
361 end
|
Nenue@10
|
362 style_cache_func[styleName](frame)
|
Nenue@10
|
363
|
Nenue@13
|
364 --- Hardcoding the sizing vars for sanity
|
Nenue@13
|
365 local normalSettings = mod.defaults.Style.Format
|
Nenue@14
|
366 frame.titleHeight = frame.title and (frame.title:GetStringHeight() + (frame.title.spacing or 0)*2) or 0
|
Nenue@14
|
367 frame.statusHeight = frame.status and (frame.status:GetStringHeight() + (frame.status.spacing or 0)*2) or 0
|
Nenue@14
|
368 frame.height = frame.titleHeight + frame.statusHeight + (frame.attachmentHeight or 0)
|
Nenue@13
|
369 frame.width = normalSettings.Frame.Width
|
Nenue@13
|
370 frame.statusWidth = frame.width - normalSettings.status.Indent
|
Nenue@13
|
371 frame.titleWidth = frame.width - normalSettings.title.Indent
|
Nenue@10
|
372
|
Nenue@16
|
373 print((frame.status and frame.status:GetText()))
|
Nenue@16
|
374 print((frame.status and frame.status:GetWidth()))
|
Nenue@16
|
375 print(frame.status and frame.title:GetStringHeight())
|
Nenue@16
|
376 print(frame.title and (frame.title:GetStringHeight() + (frame.title.spacing or 0)*2) or 0)
|
Nenue@16
|
377 print(frame.status and frame.status:GetStringHeight())
|
Nenue@16
|
378 print(frame.status and (frame.status:GetStringHeight() + (frame.status.spacing or 0)*2) or 0)
|
Nenue@10
|
379 if frame.status then
|
Nenue@14
|
380 print('status ', frame.statusHeight, normalSettings.status.Indent, 0, 'statusbg', frame.statusHeight)
|
Nenue@16
|
381 frame.status:SetWidth(frame.width)
|
Nenue@13
|
382 frame.status:SetPoint('LEFT', frame, 'LEFT', normalSettings.status.Indent, 0)
|
Nenue@16
|
383 --frame.status:SetHeight(frame.statusHeight)
|
Nenue@10
|
384 if frame.statusbg then
|
Nenue@16
|
385 frame.statusbg:SetHeight(frame.statusHeight)
|
Nenue@10
|
386 frame.statusbg:SetWidth(frame.width)
|
Nenue@10
|
387 end
|
Nenue@10
|
388 end
|
Nenue@10
|
389 if frame.title then
|
Nenue@14
|
390 print('title ',frame.titleHeight, normalSettings.title.Indent, 'titlebg',frame.titleHeight)
|
Nenue@13
|
391 frame.title:SetPoint('LEFT', frame, 'LEFT', normalSettings.title.Indent)
|
Nenue@16
|
392 frame.title:SetWidth(frame.width)
|
Nenue@10
|
393 if frame.titlebg then
|
Nenue@10
|
394 frame.titlebg:SetHeight(frame.titleHeight)
|
Nenue@10
|
395 frame.titlebg:SetWidth(frame.width)
|
Nenue@10
|
396 end
|
Nenue@10
|
397 end
|
Nenue@14
|
398 frame:SetSize(frame.width, frame.height)
|
Nenue@10
|
399 print('sizing frame', frame.width, frame.height)
|
Nenue@10
|
400 --[[
|
Nenue@10
|
401 local titleSpacing, titleSpacing2 = c.Title.Spacing, (c.Title.Spacing * 2)
|
Nenue@10
|
402 local textSpacing, textSpacing2 = c.Text.Spacing, (c.Text.Spacing * 2)
|
Nenue@10
|
403
|
Nenue@10
|
404 block.title:SetSpacing(titleSpacing)
|
Nenue@10
|
405 block.objectives:SetSpacing(textSpacing)
|
Nenue@10
|
406 block.objectives:SetWordWrap(true)
|
Nenue@10
|
407
|
Nenue@10
|
408 local titleHeight, textHeight = block.title:GetStringHeight(), block.objectives:GetStringHeight() + block.attachmentHeight
|
Nenue@10
|
409 local blockHeight = titleHeight + titleSpacing2 + textHeight + textSpacing2
|
Nenue@10
|
410 local blockWidth = wrapperMaxWidth
|
Nenue@10
|
411
|
Nenue@10
|
412 block.titlebg:SetSize(min(w1, w2), titleHeight + titleSpacing2)
|
Nenue@10
|
413 block.bg:SetSize(w1, textHeight + textSpacing2)
|
Nenue@10
|
414 block:SetSize(blockWidth, blockHeight)
|
Nenue@10
|
415
|
Nenue@10
|
416 block.title:SetPoint('TOPLEFT', block.titlebg, 'TOPLEFT', 0, -titleSpacing)
|
Nenue@10
|
417 block.objectives:SetPoint('TOPLEFT', block.titlebg, 'BOTTOMLEFT', textIndent, -textSpacing)
|
Nenue@10
|
418
|
Nenue@10
|
419 -- store
|
Nenue@10
|
420 block.titleHeight = titleHeight
|
Nenue@10
|
421 block.textHeight = textHeight
|
Nenue@10
|
422 block.width = blockWidth
|
Nenue@10
|
423 block.height = blockHeight
|
Nenue@10
|
424 --]]
|
Nenue@10
|
425 --print(' |cFF00FFFF'..block:GetName()..'|r:|cFF0088FFSetStyle|r(', blockWidth, 'x', blockHeight, '(textH', textHeight,', titleH', titleHeight, ')')
|
Nenue@10
|
426 end
|
Nenue@14
|
427 local segments = {'Left', 'Right', 'Tile' }
|
Nenue@14
|
428 local Wrapper = _G.VeneerObjectiveWrapper
|
Nenue@14
|
429 mod.UpdateWrapperStyle = function()
|
Nenue@14
|
430 local c = mod.Conf.Wrapper
|
Nenue@14
|
431 --Wrapper:ClearAllPoints()
|
Nenue@14
|
432 --Wrapper:SetPoint(c.WrapperPoint, UIParent, c.WrapperPoint, c.WrapperFloatX, c.WrapperFloatY)
|
Nenue@14
|
433 end
|
Nenue@14
|
434
|
Nenue@14
|
435 mod.Tracker.SetBlockTags = function(block, info)
|
Nenue@14
|
436 if info.isComplete then
|
Nenue@14
|
437 block.mainStyle = 'Complete'
|
Nenue@14
|
438 end
|
Nenue@14
|
439 if info.superTracked then
|
Nenue@14
|
440 block.subStyle = 'Super'
|
Nenue@14
|
441 elseif info.isDaily then
|
Nenue@14
|
442 block.subStyle = 'Daily'
|
Nenue@14
|
443 end
|
Nenue@14
|
444 end
|
Nenue@14
|
445 local unitLevel = UnitLevel('player')
|
Nenue@14
|
446 mod.Quest.SetBlockTags = function(block, info)
|
Nenue@14
|
447
|
Nenue@14
|
448 mod.Tracker.SetBlockTags(block, info)
|
Nenue@14
|
449 if info.level then
|
Nenue@14
|
450 local levelDiff = unitLevel - info.level
|
Nenue@14
|
451 if levelDiff > 9 then
|
Nenue@14
|
452 block.title:SetTextColor(0.7, 0.7, 0.7, 1)
|
Nenue@14
|
453 elseif levelDiff > 1 then
|
Nenue@14
|
454 block.title:SetTextColor(0.5, 1, 0.5, 1)
|
Nenue@14
|
455 elseif levelDiff < -1 then
|
Nenue@14
|
456 block.title:SetTextColor(1, 0.4, 0.25, 1)
|
Nenue@14
|
457 elseif levelDiff < -4 then
|
Nenue@14
|
458 block.title:SetTextColor(1, 0, 0, 1)
|
Nenue@14
|
459 else
|
Nenue@14
|
460 block.title:SetTextColor(1,1,1,1)
|
Nenue@14
|
461 end
|
Nenue@14
|
462 end
|
Nenue@14
|
463 end
|
Nenue@14
|
464 mod.Cheevs.SetBlockTags = function(block, info)
|
Nenue@14
|
465 mod.Tracker.SetBlockTags(block, info)
|
Nenue@14
|
466 end
|
Nenue@10
|
467
|
Nenue@10
|
468 --- Argument containers
|
Nenue@14
|
469 local o -- text flag
|
Nenue@14
|
470 local a1, a2, a3, a4, b1, b2, b3, b4 -- color1, color2
|
Nenue@14
|
471 local f1, f2, f3 -- font
|
Nenue@14
|
472 local w1, w2 -- size
|
Nenue@14
|
473 local p1, p2, p3, x, y -- path/point args
|
Nenue@10
|
474 mod.SetBlockAttribute = {}
|
Nenue@10
|
475 local sb = mod.SetBlockAttribute
|
Nenue@10
|
476 local print = B.print('Attribute')
|
Nenue@10
|
477 sb.Gradient = function(region, value)
|
Nenue@10
|
478 print('|cFF8844FFGradient|r', region:GetName(), unpack(value))
|
Nenue@16
|
479 o = value[1]
|
Nenue@10
|
480 a1, a2, a3, a4 = unpack(value.MinColor)
|
Nenue@10
|
481 b1, b2, b3, b4 = unpack(value.MaxColor)
|
Nenue@10
|
482 region:SetVertexColor(1,1,1)
|
Nenue@10
|
483 region:SetTexture(1,1,1,1)
|
Nenue@10
|
484 region:SetGradientAlpha(o, a1, a2, a3, a4, b1, b2, b3, b4)
|
Nenue@10
|
485 end
|
Nenue@10
|
486
|
Nenue@10
|
487 sb.Background = function(region, value)
|
Nenue@10
|
488 print('|cFF0088FFBackground|r', unpack(value))
|
Nenue@10
|
489 region:SetVertexColor(1,1,1) -- reset
|
Nenue@10
|
490 region:SetTexture(unpack(value))
|
Nenue@10
|
491 end
|
Nenue@10
|
492 sb.BackgroundComplex = function (region, value)
|
Nenue@10
|
493 local left, tile, right = value.Left, value.Tile, value.Right
|
Nenue@10
|
494
|
Nenue@10
|
495 end
|
Nenue@10
|
496 sb.Font = function(region, value)
|
Nenue@10
|
497 f1, f2, f3 = unpack(value)
|
Nenue@10
|
498 print('|cFFFFFF00Font|r', f1, f2, f3)
|
Nenue@10
|
499 region:SetFont(f1, f2, f3)
|
Nenue@10
|
500 end
|
Nenue@10
|
501
|
Nenue@10
|
502 sb.Spacing = function(region, value)
|
Nenue@14
|
503 print('FontSpacing', region:GetName(), value)
|
Nenue@10
|
504 region:SetSpacing(value)
|
Nenue@10
|
505 region.spacing = value
|
Nenue@10
|
506 end
|
Nenue@10
|
507
|
Nenue@10
|
508 sb.TextColor = function(region, value)
|
Nenue@10
|
509 a1, a2, a3, a4 = unpack(value)
|
Nenue@10
|
510 print('TextColor', a1, a2, a3, a4)
|
Nenue@10
|
511 region:SetTextColor(a1, a2, a3, a4)
|
Nenue@10
|
512 end
|
Nenue@10
|
513 sb.Texture = function(region, value)
|
Nenue@10
|
514
|
Nenue@10
|
515 p1, a1, a2, a3, a4 = unpack(value)
|
Nenue@10
|
516 print('Texture', p1, a1, a2, a3, a4)
|
Nenue@10
|
517 region:SetTexture(p1)
|
Nenue@10
|
518 if a1 then
|
Nenue@10
|
519 region:SetTexCoord(a1, a2, a3, a4)
|
Nenue@10
|
520 end
|
Nenue@10
|
521 end
|
Nenue@10
|
522 sb.Width = function(region, value)
|
Nenue@10
|
523 w1 = value
|
Nenue@10
|
524 region:SetWidth(w1)
|
Nenue@10
|
525 end
|
Nenue@10
|
526
|
Nenue@10
|
527 sb.Height = function(region, value)
|
Nenue@10
|
528 w2 = value
|
Nenue@10
|
529 region:SetHeight(w2)
|
Nenue@10
|
530 end
|
Nenue@10
|
531 sb.Size = function(region, value)
|
Nenue@10
|
532 w1, w2 = unpack(value)
|
Nenue@10
|
533 region:SetSize(w1, w2)
|
Nenue@14
|
534 end
|
Nenue@14
|
535
|