Mercurial > wow > buffalo2
comparison ObjectiveStyle.lua @ 16:880828018bf4
ObjectiveEvents
- trim down the number of events that fire full updates
- begin the general outline for determining which trackers need to refresh
- handlers for accepting and completing auto-popup quests
ObjectiveFrame
- correct variables for money reward calculation
- make sure everythign is scaling to the font strings and that the font strings aren't being pinned by SetSize
ObjectiveInfo
- implementation of autoquest popups
- discern between internal and client bonus objective indexes
- acquire the correct data set from bonus objective query
ObjectiveStyle
- look for a style table under the previously interpreted set before deferring standard options
- horizontal/vertical options in gradient
- remove height-fixing for font strings
author | Nenue |
---|---|
date | Tue, 05 Apr 2016 00:39:12 -0400 |
parents | ed642234f017 |
children | c33497b116d6 |
comparison
equal
deleted
inserted
replaced
15:f660f1c1e0aa | 16:880828018bf4 |
---|---|
83 Font = {headerFont, headerSize, headerOutline}, Spacing = headerSpacing, | 83 Font = {headerFont, headerSize, headerOutline}, Spacing = headerSpacing, |
84 Indent = 2, | 84 Indent = 2, |
85 TextColor = {1, .9, .2, 1}, | 85 TextColor = {1, .9, .2, 1}, |
86 }, | 86 }, |
87 titlebg = { | 87 titlebg = { |
88 Gradient = {MinColor = {0,0,0,0.25}, MaxColor = {0,0,0,.15}}, | 88 Gradient = {'VERTICAL', MinColor = {0,0,0,0.25}, MaxColor = {0,0,0,.15}}, |
89 } | 89 } |
90 } | 90 } |
91 }, | 91 }, |
92 TrackerBlock = { | 92 TrackerBlock = { |
93 Normal = { | 93 Normal = { |
94 titlebg = { | 94 titlebg = { |
95 Indent = 2, | 95 Indent = 2, |
96 Gradient = { MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .14}}, | 96 Gradient = { 'HORIZONTAL', MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .14}}, |
97 }, | 97 }, |
98 title = { | 98 title = { |
99 TextColor = {1,1,1,0.5}, | 99 TextColor = {1,1,1,0.5}, |
100 Font = {titleFont, titleSize, titleOutline}, | 100 Font = {titleFont, titleSize, titleOutline}, |
101 Spacing = titleSpacing, | 101 Spacing = titleSpacing, |
104 TextColor = {1,1,1,0.5}, | 104 TextColor = {1,1,1,0.5}, |
105 Font = {textFont, textSize, textOutline}, | 105 Font = {textFont, textSize, textOutline}, |
106 Spacing = textSpacing, | 106 Spacing = textSpacing, |
107 }, | 107 }, |
108 statusbg = { | 108 statusbg = { |
109 Gradient = { MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .11}}, | 109 Gradient = { 'HORIZONTAL', MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .11}}, |
110 } | 110 } |
111 }, | 111 }, |
112 Super = { | 112 Super = { |
113 title = { | 113 title = { |
114 TextColor = {1,1,1,1}, | 114 TextColor = {1,1,1,1}, |
115 Font = {titleFont, titleSize, titleOutline}, | 115 Font = {titleFont, titleSize, titleOutline}, |
116 Spacing = titleSpacing, BackgroundFullWidth = true | 116 Spacing = titleSpacing, BackgroundFullWidth = true |
117 }, | 117 }, |
118 titlebg = { | 118 titlebg = { |
119 Gradient = { MinColor = {0, .7, .6, .45}, MaxColor = {0, .7, .6, 0.23}}, | 119 Gradient = { 'HORIZONTAL', MinColor = {0, .7, .6, 0}, MaxColor = {0, .7, .6, 0.23}}, |
120 }, | 120 }, |
121 status = { | 121 status = { |
122 TextColor = {1,1,1,1}, | 122 TextColor = {1,1,1,1}, |
123 Font = {textFont, textSize, textOutline}, | 123 Font = {textFont, textSize, textOutline}, |
124 Spacing = textSpacing, | 124 Spacing = textSpacing, |
125 }, | 125 }, |
126 statusbg = { | 126 statusbg = { |
127 Gradient = { MinColor = {0, .7, .6, 0.40}, MaxColor = {0, .7, .6, 0.23} }, | 127 Gradient = { 'HORIZONTAL', MinColor = {0, .7, .6, 0}, MaxColor = {0, .7, .6, 0.23} }, |
128 }, | 128 }, |
129 }, | 129 }, |
130 MouseDown = { | 130 MouseDown = { |
131 title = { | 131 title = { |
132 Font = {titleFont, titleSize, titleOutline}, | 132 Font = {titleFont, titleSize, titleOutline}, |
133 Spacing = titleSpacing, | 133 Spacing = titleSpacing, |
134 }, | 134 }, |
135 titlebg = { | 135 titlebg = { |
136 Gradient = { MinColor = {0.2, .4, 1, 1}, MaxColor = {0.2, .4, 1, .4}, }, | 136 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 1}, MaxColor = {0.2, .4, 1, .4}, }, |
137 }, | 137 }, |
138 status = { | 138 status = { |
139 Font = {textFont, textSize, textOutline}, | 139 Font = {textFont, textSize, textOutline}, |
140 Spacing = textSpacing, | 140 Spacing = textSpacing, |
141 }, | 141 }, |
142 statusbg = { | 142 statusbg = { |
143 Gradient = { MinColor = {0.2, .4, 1, 1}, MaxColor = {0.2, .4, 1, .2}, }, | 143 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 1}, MaxColor = {0.2, .4, 1, .2}, }, |
144 } | 144 } |
145 }, | 145 }, |
146 Complete = { | 146 Complete = { |
147 title = { | 147 title = { |
148 TextColor = {1,1,1,0.5}, | 148 TextColor = {1,1,1,0.5}, |
149 Font = {titleFont, titleSize, titleOutline}, Spacing = titleSpacing, | 149 Font = {titleFont, titleSize, titleOutline}, Spacing = titleSpacing, |
150 }, | 150 }, |
151 titlebg = { | 151 titlebg = { |
152 Gradient = { MinColor = {0, 1, 0, 0.34}, MaxColor = {0, 1, 0, .17}, }, | 152 Gradient = {'HORIZONTAL', MinColor = {0, 1, 0, 0}, MaxColor = {0, 1, 0, 0.34}, }, |
153 }, | 153 }, |
154 status = { | 154 status = { |
155 TextColor = {1,1,1,0.5}, | 155 TextColor = {1,1,1,0.5}, |
156 Font = {textFont, textSize, textOutline}, Spacing = textSpacing, | 156 Font = {textFont, textSize, textOutline}, Spacing = textSpacing, |
157 }, | 157 }, |
158 statusbg = { | 158 statusbg = { |
159 Gradient = { MinColor = {0, 1, 0, .25}, MaxColor = {0, 1, 0, 0.12}, }, | 159 Gradient = {'HORIZONTAL', MinColor = {0, 1, 0, 0}, MaxColor = {0, 1, 0, .25}, }, |
160 } | 160 } |
161 }, | 161 }, |
162 Daily = { | 162 Daily = { |
163 titlebg = { | 163 titlebg = { |
164 Gradient = { MinColor = {0, .4, 1, 0.34}, MaxColor = {0, 0.4, 1, .17}, }, | 164 Gradient = {'HORIZONTAL', MinColor = {0, .4, 1, 0.34}, MaxColor = {0, 0.4, 1, .17}, }, |
165 }, | 165 }, |
166 statusbg = { | 166 statusbg = { |
167 Gradient = { MinColor = {0, .4, 1, 0.25}, MaxColor = {0, 0.4, 1, .12}, }, | 167 Gradient = {'HORIZONTAL', MinColor = {0, .4, 1, 0.25}, MaxColor = {0, 0.4, 1, .12}, }, |
168 }, | 168 }, |
169 }, | 169 }, |
170 Cheev = { | 170 AutoQuest = { |
171 Normal = { | |
172 titlebg = { | |
173 Indent = 2, | |
174 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .14}}, | |
175 }, | |
176 title = { | |
177 TextColor = {1,1,1,1}, | |
178 Font = {titleFont, titleSize, titleOutline}, | |
179 Spacing = titleSpacing, | |
180 }, | |
181 status = { | |
182 TextColor = {0,1,0,1}, | |
183 Font = {textFont, textSize, textOutline}, | |
184 Spacing = textSpacing, | |
185 }, | |
186 statusbg = { | |
187 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .11}}, | |
188 } | |
189 }, | |
190 }, | |
191 Cheevs = { | |
171 Normal = { | 192 Normal = { |
172 | 193 |
173 title = { | 194 title = { |
174 Font = {titleFont, titleSize, titleOutline}, | 195 Font = {titleFont, titleSize, titleOutline}, |
175 Spacing = titleSpacing, | 196 Spacing = titleSpacing, |
176 }, | 197 }, |
177 titlebg = { | 198 titlebg = { |
178 Gradient = { MinColor = {0.2, .4, 1, 0.45}, MaxColor = {.7, 0, 0.9, .19}}, | 199 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 0.45}, MaxColor = {.7, 0, 0.9, .19}}, |
179 | 200 |
180 }, | 201 }, |
181 status = { | 202 status = { |
182 Font = {textFont, textSize, textOutline}, | 203 Font = {textFont, textSize, textOutline}, |
183 Spacing = textSpacing, | 204 Spacing = textSpacing, |
184 }, | 205 }, |
185 statusbg = { | 206 statusbg = { |
186 Gradient = { MinColor = {0.2, .4, 1, 0.25}, MaxColor = {.7, 0, 0.9, .12}}, | 207 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 0.25}, MaxColor = {.7, 0, 0.9, .12}}, |
187 }, | 208 }, |
188 }, | 209 }, |
189 Complete = { | 210 Complete = { |
190 title = { | 211 title = { |
191 Font = {titleFont, titleSize, titleOutline}, | 212 Font = {titleFont, titleSize, titleOutline}, |
192 Spacing = titleSpacing, | 213 Spacing = titleSpacing, |
193 }, | 214 }, |
194 titlebg = { | 215 titlebg = { |
195 Gradient = { MinColor = {0.2, .4, 1, 0.45}, MaxColor = {.7, 0, 0.9, .19}}, | 216 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 0.45}, MaxColor = {.7, 0, 0.9, .19}}, |
196 }, | 217 }, |
197 status = { | 218 status = { |
198 Font = {textFont, textSize, textOutline}, | 219 Font = {textFont, textSize, textOutline}, |
199 Spacing = textSpacing, | 220 Spacing = textSpacing, |
200 }, | 221 }, |
201 statusbg = { | 222 statusbg = { |
202 Gradient = { MinColor = {0.2, .4, 1, 0.25}, MaxColor = {.7, 0, 0.9, .12}}, | 223 Gradient = {'HORIZONTAL', MinColor = {0.2, .4, 1, 0.25}, MaxColor = {.7, 0, 0.9, .12}}, |
203 }, | 224 }, |
204 }, | 225 }, |
205 } | 226 } |
206 } | 227 } |
207 } | 228 } |
219 local style_cache = mod.BlockStyleCache | 240 local style_cache = mod.BlockStyleCache |
220 mod.regions = {} | 241 mod.regions = {} |
221 mod.regionStyles = {} | 242 mod.regionStyles = {} |
222 mod.SetBlockStyle = function(frame, frameType, ...) | 243 mod.SetBlockStyle = function(frame, frameType, ...) |
223 -- var names intended to reflect argument order | 244 -- var names intended to reflect argument order |
224 print('|cFFFFFF00'..frame:GetName()..'|r') | 245 print('|cFFFFFF00'..frame:GetName()..'|r', frameType, ...) |
225 --@debug@ | 246 --@debug@ |
226 local c = mod.defaults.Normal | 247 local c = mod.defaults.Normal |
227 local style_list = {... } | 248 local style_list = {... } |
228 local styleName = frameType .. '-' .. table.concat(style_list,'') | 249 local styleName = frameType .. '-' .. table.concat(style_list,'') |
250 local previousClass = mod.Conf.Style[frameType] | |
229 | 251 |
230 if not style_cache[styleName] then | 252 if not style_cache[styleName] then |
231 local style = {} | 253 local style = {} |
232 | 254 |
233 if mod.defaults.Style[frameType] then | 255 if mod.defaults.Style[frameType] then |
236 print(' resorting to class Normal (missing |cFFFF8800'.. frameType..'|r)') | 258 print(' resorting to class Normal (missing |cFFFF8800'.. frameType..'|r)') |
237 end | 259 end |
238 local normal = mod.defaults.Style.Normal | 260 local normal = mod.defaults.Style.Normal |
239 local root = mod.defaults.Style[frameType] or normal | 261 local root = mod.defaults.Style[frameType] or normal |
240 for i, className in ipairs(style_list) do | 262 for i, className in ipairs(style_list) do |
241 local class = root[className] or normal[className] or root | 263 local class = normal |
242 if root[className] then | 264 if previousClass and previousClass[className] then |
243 | 265 class = previousClass[className] |
266 print(' ChildClass |cFFFF0088'.. className .. '|r') | |
267 elseif root[className] then | |
268 class = root[className] | |
244 print(' SubClass |cFF0088FF'.. className .. '|r') | 269 print(' SubClass |cFF0088FF'.. className .. '|r') |
245 elseif normal[className] then | 270 elseif normal[className] then |
271 class = normal[className] | |
246 print(' SubClass Normal.|cFFFF0088'..className..'|r') | 272 print(' SubClass Normal.|cFFFF0088'..className..'|r') |
247 else | 273 else |
248 print(' SubClass Normal') | 274 print(' SubClass not found '..className..'') |
249 end | 275 end |
276 previousClass = class | |
277 | |
250 for elementName, element in pairs(class) do | 278 for elementName, element in pairs(class) do |
251 if not elementName:match('^%u') then | 279 if not elementName:match('^%u') then |
252 print(' scanning Element |cFF8800FF'.. elementName ..'|r') | 280 print(' scanning Element |cFF8800FF'.. elementName ..'|r') |
253 if not style[elementName] then | 281 if not style[elementName] then |
254 style[elementName] = {} | 282 style[elementName] = {} |
261 | 289 |
262 end | 290 end |
263 end | 291 end |
264 | 292 |
265 end | 293 end |
266 | |
267 end | 294 end |
268 | 295 |
269 for k, elements in pairs(mod.defaults.Style.Normal) do | 296 for k, elements in pairs(mod.defaults.Style.Normal) do |
270 if not style[k] and type(elements) ~= 'table' then | 297 if not style[k] and type(elements) ~= 'table' then |
271 style[k] = elements | 298 style[k] = elements |
275 | 302 |
276 print('result for: ', frame:GetName()) | 303 print('result for: ', frame:GetName()) |
277 for k,v in pairs(style) do | 304 for k,v in pairs(style) do |
278 if type(v) == 'table' and not k:match('^%u') then | 305 if type(v) == 'table' and not k:match('^%u') then |
279 for kk, vv in pairs(v) do | 306 for kk, vv in pairs(v) do |
280 print(' |cFFFFFF00'..k..'|r.|cFF00FF00'..kk..'|r =', tostring(vv)) | 307 print(' |cFFFFFF00'..k..'|r.|cFF00FF00'..kk..'|r =', (type(vv) == 'table' and ('{'..table.concat(vv,', ')..'}') or tostring(vv))) |
281 end | 308 end |
282 else | 309 else |
283 print(' |cFFFFFFFF' .. k ..'|r =', tostring(v)) | 310 print(' |cFFFFFFFF' .. k ..'|r =', tostring(v)) |
284 end | 311 end |
285 end | 312 end |
299 code = code .. | 326 code = code .. |
300 "\n if frame['"..elementName.."'] then" | 327 "\n if frame['"..elementName.."'] then" |
301 | 328 |
302 for attributeName, value in pairs(styleset) do | 329 for attributeName, value in pairs(styleset) do |
303 if mod.SetBlockAttribute[attributeName] then | 330 if mod.SetBlockAttribute[attributeName] then |
304 print(' '..elementName..':'.. attributeName ..'(', value, ')') | 331 print(' add function '..elementName..':'.. attributeName ..'(', (type(value) == 'table' and ('{'..table.concat(value,', ')..'}') or tostring(value)), ')') |
305 | 332 |
306 | 333 |
307 --mod.SetBlockAttribute[attributeName](region, value) | 334 --mod.SetBlockAttribute[attributeName](region, value) |
308 code = code | 335 code = code |
309 --.. "\n print('CacheFunc', ' applying', '|cFF00FFFF" .. attributeName .. "|r to', '|cFF0088FF"..elementName.."|r', cache['"..styleName.."']['"..elementName.."']['".. attributeName .."'])" | 336 --.. "\n print('CacheFunc', ' applying', '|cFF00FFFF" .. attributeName .. "|r to', '|cFF0088FF"..elementName.."|r', cache['"..styleName.."']['"..elementName.."']['".. attributeName .."'])" |
341 frame.height = frame.titleHeight + frame.statusHeight + (frame.attachmentHeight or 0) | 368 frame.height = frame.titleHeight + frame.statusHeight + (frame.attachmentHeight or 0) |
342 frame.width = normalSettings.Frame.Width | 369 frame.width = normalSettings.Frame.Width |
343 frame.statusWidth = frame.width - normalSettings.status.Indent | 370 frame.statusWidth = frame.width - normalSettings.status.Indent |
344 frame.titleWidth = frame.width - normalSettings.title.Indent | 371 frame.titleWidth = frame.width - normalSettings.title.Indent |
345 | 372 |
373 print((frame.status and frame.status:GetText())) | |
374 print((frame.status and frame.status:GetWidth())) | |
375 print(frame.status and frame.title:GetStringHeight()) | |
376 print(frame.title and (frame.title:GetStringHeight() + (frame.title.spacing or 0)*2) or 0) | |
377 print(frame.status and frame.status:GetStringHeight()) | |
378 print(frame.status and (frame.status:GetStringHeight() + (frame.status.spacing or 0)*2) or 0) | |
346 if frame.status then | 379 if frame.status then |
347 print('status ', frame.statusHeight, normalSettings.status.Indent, 0, 'statusbg', frame.statusHeight) | 380 print('status ', frame.statusHeight, normalSettings.status.Indent, 0, 'statusbg', frame.statusHeight) |
381 frame.status:SetWidth(frame.width) | |
348 frame.status:SetPoint('LEFT', frame, 'LEFT', normalSettings.status.Indent, 0) | 382 frame.status:SetPoint('LEFT', frame, 'LEFT', normalSettings.status.Indent, 0) |
349 frame.status:SetHeight(frame.statusHeight) | 383 --frame.status:SetHeight(frame.statusHeight) |
350 if frame.statusbg then | 384 if frame.statusbg then |
351 | 385 frame.statusbg:SetHeight(frame.statusHeight) |
352 frame.statusbg:SetHeight(frame.statusHeight + (frame.attachmentHeight or 0)) | |
353 frame.statusbg:SetWidth(frame.width) | 386 frame.statusbg:SetWidth(frame.width) |
354 end | 387 end |
355 end | 388 end |
356 if frame.title then | 389 if frame.title then |
357 print('title ',frame.titleHeight, normalSettings.title.Indent, 'titlebg',frame.titleHeight) | 390 print('title ',frame.titleHeight, normalSettings.title.Indent, 'titlebg',frame.titleHeight) |
358 frame.title:SetPoint('LEFT', frame, 'LEFT', normalSettings.title.Indent) | 391 frame.title:SetPoint('LEFT', frame, 'LEFT', normalSettings.title.Indent) |
359 frame.title:SetHeight(frame.titleHeight) | 392 frame.title:SetWidth(frame.width) |
360 if frame.titlebg then | 393 if frame.titlebg then |
361 frame.titlebg:SetHeight(frame.titleHeight) | 394 frame.titlebg:SetHeight(frame.titleHeight) |
362 frame.titlebg:SetWidth(frame.width) | 395 frame.titlebg:SetWidth(frame.width) |
363 end | 396 end |
364 end | 397 end |
441 mod.SetBlockAttribute = {} | 474 mod.SetBlockAttribute = {} |
442 local sb = mod.SetBlockAttribute | 475 local sb = mod.SetBlockAttribute |
443 local print = B.print('Attribute') | 476 local print = B.print('Attribute') |
444 sb.Gradient = function(region, value) | 477 sb.Gradient = function(region, value) |
445 print('|cFF8844FFGradient|r', region:GetName(), unpack(value)) | 478 print('|cFF8844FFGradient|r', region:GetName(), unpack(value)) |
446 o = 'HORIZONTAL' | 479 o = value[1] |
447 a1, a2, a3, a4 = unpack(value.MinColor) | 480 a1, a2, a3, a4 = unpack(value.MinColor) |
448 b1, b2, b3, b4 = unpack(value.MaxColor) | 481 b1, b2, b3, b4 = unpack(value.MaxColor) |
449 region:SetVertexColor(1,1,1) | 482 region:SetVertexColor(1,1,1) |
450 region:SetTexture(1,1,1,1) | 483 region:SetTexture(1,1,1,1) |
451 region:SetGradientAlpha(o, a1, a2, a3, a4, b1, b2, b3, b4) | 484 region:SetGradientAlpha(o, a1, a2, a3, a4, b1, b2, b3, b4) |