comparison ObjectiveStyle.lua @ 11:fb80e365bab3

ObjectiveStyle & ObjectiveFrame - abstract aesthetic details away from ObjectiveFrame - revise SetBlockStyle into a more general algorithm for every frame - implement caching of resolved attribute combinations - use loadstring functions to store resolved attributes and call upon those when, for example, a MouseUp leads a tracker block to restore its original style (removes a lot of very small fps dipping)
author Nenue
date Sat, 02 Apr 2016 03:23:12 -0400
parents f03c75f63566
children 9455693fc290
comparison
equal deleted inserted replaced
10:f03c75f63566 11:fb80e365bab3
257 257
258 if not style_cache_func[styleName] then 258 if not style_cache_func[styleName] then
259 local code = 259 local code =
260 "return function (frame)\n".. 260 "return function (frame)\n"..
261 " local func = Veneer.ObjectiveTracker.SetBlockAttribute\n".. 261 " local func = Veneer.ObjectiveTracker.SetBlockAttribute\n"..
262 " local cache = Veneer.ObjectiveTracker.BlockStyleCache" .. 262 " local cache = Veneer.ObjectiveTracker.BlockStyleCache"
263 " print('CacheFunc', '|cFFFFFF00SET|r "..styleName.." |cFFFFFF00ON|r', frame:GetName()) " 263 --.. " print('CacheFunc', '|cFFFFFF00SET|r "..styleName.." |cFFFFFF00ON|r', frame:GetName()) "
264 264
265 for elementName, styleset in pairs(style) do 265 for elementName, styleset in pairs(style) do
266 code = code .. 266 code = code ..
267 "\n if frame['"..elementName.."'] then" 267 "\n if frame['"..elementName.."'] then"
268 268
270 if mod.SetBlockAttribute[attributeName] then 270 if mod.SetBlockAttribute[attributeName] then
271 print(' '..elementName..':'.. attributeName ..'(', value, ')') 271 print(' '..elementName..':'.. attributeName ..'(', value, ')')
272 272
273 273
274 --mod.SetBlockAttribute[attributeName](region, value) 274 --mod.SetBlockAttribute[attributeName](region, value)
275 code = code .. "\n print('CacheFunc', ' applying', '|cFF00FFFF" .. attributeName .. "|r to', '|cFF0088FF"..elementName.."|r', cache['"..styleName.."']['"..elementName.."']['".. attributeName .."'])" .. 275 code = code
276 "\n\n func['" .. attributeName .. "'](frame['"..elementName.."'],".. 276 --.. "\n print('CacheFunc', ' applying', '|cFF00FFFF" .. attributeName .. "|r to', '|cFF0088FF"..elementName.."|r', cache['"..styleName.."']['"..elementName.."']['".. attributeName .."'])"
277 .. "\n\n func['" .. attributeName .. "'](frame['"..elementName.."'],"..
277 " cache['"..styleName.."']['"..elementName.."']['".. attributeName .."'])" 278 " cache['"..styleName.."']['"..elementName.."']['".. attributeName .."'])"
278 279
279 --- Set any frame.blah variables used in Updates 280 --- Set any frame.blah variables used in Updates
280 if block_vars[elementName .. attributeName] then 281 if block_vars[elementName .. attributeName] then
281 print('|cFF008800BVar|r', elementName..attributeName) 282 print('|cFF008800BVar|r', elementName..attributeName)
287 288
288 end 289 end
289 end 290 end
290 code = code .. 291 code = code ..
291 "\n else".. 292 "\n else"..
292 "\n print('CacheFunc', ' |cFFFF4400missing', frame:GetName()..'."..elementName.."')".. 293 --"\n print('CacheFunc', ' |cFFFF4400missing', frame:GetName()..'."..elementName.."')"..
293 "\n end" 294 "\n end"
294 end 295 end
295 code = code .. "\nend" 296 code = code .. "\nend"
296 local result = assert(loadstring(code)) 297 local result = assert(loadstring(code))
297 print('storing style func', styleName, result()) 298 print('storing style func', styleName, result())