annotate ObjectiveStyle.lua @ 17:c33497b116d6

ObjectiveStyle - statusbg and titlebg will respect the spacing value
author Nenue
date Tue, 05 Apr 2016 00:44:25 -0400
parents 880828018bf4
children d1812fb10ae6
rev   line source
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@17 383 frame.status:SetPoint('TOP', frame, 'TOP', 0, -frame.status.spacing)
Nenue@16 384 --frame.status:SetHeight(frame.statusHeight)
Nenue@10 385 if frame.statusbg then
Nenue@17 386
Nenue@17 387 frame.statusbg:SetHeight(frame.statusHeight + frame.status.spacing * 2)
Nenue@10 388 frame.statusbg:SetWidth(frame.width)
Nenue@10 389 end
Nenue@10 390 end
Nenue@10 391 if frame.title then
Nenue@14 392 print('title ',frame.titleHeight, normalSettings.title.Indent, 'titlebg',frame.titleHeight)
Nenue@13 393 frame.title:SetPoint('LEFT', frame, 'LEFT', normalSettings.title.Indent)
Nenue@17 394 frame.title:SetPoint('TOP', frame, 'TOP', 0, -frame.title.spacing)
Nenue@16 395 frame.title:SetWidth(frame.width)
Nenue@10 396 if frame.titlebg then
Nenue@17 397 frame.titlebg:SetHeight(frame.titleHeight + frame.title.spacing * 2)
Nenue@10 398 frame.titlebg:SetWidth(frame.width)
Nenue@10 399 end
Nenue@10 400 end
Nenue@14 401 frame:SetSize(frame.width, frame.height)
Nenue@10 402 print('sizing frame', frame.width, frame.height)
Nenue@10 403 --[[
Nenue@10 404 local titleSpacing, titleSpacing2 = c.Title.Spacing, (c.Title.Spacing * 2)
Nenue@10 405 local textSpacing, textSpacing2 = c.Text.Spacing, (c.Text.Spacing * 2)
Nenue@10 406
Nenue@10 407 block.title:SetSpacing(titleSpacing)
Nenue@10 408 block.objectives:SetSpacing(textSpacing)
Nenue@10 409 block.objectives:SetWordWrap(true)
Nenue@10 410
Nenue@10 411 local titleHeight, textHeight = block.title:GetStringHeight(), block.objectives:GetStringHeight() + block.attachmentHeight
Nenue@10 412 local blockHeight = titleHeight + titleSpacing2 + textHeight + textSpacing2
Nenue@10 413 local blockWidth = wrapperMaxWidth
Nenue@10 414
Nenue@10 415 block.titlebg:SetSize(min(w1, w2), titleHeight + titleSpacing2)
Nenue@10 416 block.bg:SetSize(w1, textHeight + textSpacing2)
Nenue@10 417 block:SetSize(blockWidth, blockHeight)
Nenue@10 418
Nenue@10 419 block.title:SetPoint('TOPLEFT', block.titlebg, 'TOPLEFT', 0, -titleSpacing)
Nenue@10 420 block.objectives:SetPoint('TOPLEFT', block.titlebg, 'BOTTOMLEFT', textIndent, -textSpacing)
Nenue@10 421
Nenue@10 422 -- store
Nenue@10 423 block.titleHeight = titleHeight
Nenue@10 424 block.textHeight = textHeight
Nenue@10 425 block.width = blockWidth
Nenue@10 426 block.height = blockHeight
Nenue@10 427 --]]
Nenue@10 428 --print(' |cFF00FFFF'..block:GetName()..'|r:|cFF0088FFSetStyle|r(', blockWidth, 'x', blockHeight, '(textH', textHeight,', titleH', titleHeight, ')')
Nenue@10 429 end
Nenue@14 430 local segments = {'Left', 'Right', 'Tile' }
Nenue@14 431 local Wrapper = _G.VeneerObjectiveWrapper
Nenue@14 432 mod.UpdateWrapperStyle = function()
Nenue@14 433 local c = mod.Conf.Wrapper
Nenue@14 434 --Wrapper:ClearAllPoints()
Nenue@14 435 --Wrapper:SetPoint(c.WrapperPoint, UIParent, c.WrapperPoint, c.WrapperFloatX, c.WrapperFloatY)
Nenue@14 436 end
Nenue@14 437
Nenue@14 438 mod.Tracker.SetBlockTags = function(block, info)
Nenue@14 439 if info.isComplete then
Nenue@14 440 block.mainStyle = 'Complete'
Nenue@14 441 end
Nenue@14 442 if info.superTracked then
Nenue@14 443 block.subStyle = 'Super'
Nenue@14 444 elseif info.isDaily then
Nenue@14 445 block.subStyle = 'Daily'
Nenue@14 446 end
Nenue@14 447 end
Nenue@14 448 local unitLevel = UnitLevel('player')
Nenue@14 449 mod.Quest.SetBlockTags = function(block, info)
Nenue@14 450
Nenue@14 451 mod.Tracker.SetBlockTags(block, info)
Nenue@14 452 if info.level then
Nenue@14 453 local levelDiff = unitLevel - info.level
Nenue@14 454 if levelDiff > 9 then
Nenue@14 455 block.title:SetTextColor(0.7, 0.7, 0.7, 1)
Nenue@14 456 elseif levelDiff > 1 then
Nenue@14 457 block.title:SetTextColor(0.5, 1, 0.5, 1)
Nenue@14 458 elseif levelDiff < -1 then
Nenue@14 459 block.title:SetTextColor(1, 0.4, 0.25, 1)
Nenue@14 460 elseif levelDiff < -4 then
Nenue@14 461 block.title:SetTextColor(1, 0, 0, 1)
Nenue@14 462 else
Nenue@14 463 block.title:SetTextColor(1,1,1,1)
Nenue@14 464 end
Nenue@14 465 end
Nenue@14 466 end
Nenue@14 467 mod.Cheevs.SetBlockTags = function(block, info)
Nenue@14 468 mod.Tracker.SetBlockTags(block, info)
Nenue@14 469 end
Nenue@10 470
Nenue@10 471 --- Argument containers
Nenue@14 472 local o -- text flag
Nenue@14 473 local a1, a2, a3, a4, b1, b2, b3, b4 -- color1, color2
Nenue@14 474 local f1, f2, f3 -- font
Nenue@14 475 local w1, w2 -- size
Nenue@14 476 local p1, p2, p3, x, y -- path/point args
Nenue@10 477 mod.SetBlockAttribute = {}
Nenue@10 478 local sb = mod.SetBlockAttribute
Nenue@10 479 local print = B.print('Attribute')
Nenue@10 480 sb.Gradient = function(region, value)
Nenue@10 481 print('|cFF8844FFGradient|r', region:GetName(), unpack(value))
Nenue@16 482 o = value[1]
Nenue@10 483 a1, a2, a3, a4 = unpack(value.MinColor)
Nenue@10 484 b1, b2, b3, b4 = unpack(value.MaxColor)
Nenue@10 485 region:SetVertexColor(1,1,1)
Nenue@10 486 region:SetTexture(1,1,1,1)
Nenue@10 487 region:SetGradientAlpha(o, a1, a2, a3, a4, b1, b2, b3, b4)
Nenue@10 488 end
Nenue@10 489
Nenue@10 490 sb.Background = function(region, value)
Nenue@10 491 print('|cFF0088FFBackground|r', unpack(value))
Nenue@10 492 region:SetVertexColor(1,1,1) -- reset
Nenue@10 493 region:SetTexture(unpack(value))
Nenue@10 494 end
Nenue@10 495 sb.BackgroundComplex = function (region, value)
Nenue@10 496 local left, tile, right = value.Left, value.Tile, value.Right
Nenue@10 497
Nenue@10 498 end
Nenue@10 499 sb.Font = function(region, value)
Nenue@10 500 f1, f2, f3 = unpack(value)
Nenue@10 501 print('|cFFFFFF00Font|r', f1, f2, f3)
Nenue@10 502 region:SetFont(f1, f2, f3)
Nenue@10 503 end
Nenue@10 504
Nenue@10 505 sb.Spacing = function(region, value)
Nenue@14 506 print('FontSpacing', region:GetName(), value)
Nenue@10 507 region:SetSpacing(value)
Nenue@10 508 region.spacing = value
Nenue@10 509 end
Nenue@10 510
Nenue@10 511 sb.TextColor = function(region, value)
Nenue@10 512 a1, a2, a3, a4 = unpack(value)
Nenue@10 513 print('TextColor', a1, a2, a3, a4)
Nenue@10 514 region:SetTextColor(a1, a2, a3, a4)
Nenue@10 515 end
Nenue@10 516 sb.Texture = function(region, value)
Nenue@10 517
Nenue@10 518 p1, a1, a2, a3, a4 = unpack(value)
Nenue@10 519 print('Texture', p1, a1, a2, a3, a4)
Nenue@10 520 region:SetTexture(p1)
Nenue@10 521 if a1 then
Nenue@10 522 region:SetTexCoord(a1, a2, a3, a4)
Nenue@10 523 end
Nenue@10 524 end
Nenue@10 525 sb.Width = function(region, value)
Nenue@10 526 w1 = value
Nenue@10 527 region:SetWidth(w1)
Nenue@10 528 end
Nenue@10 529
Nenue@10 530 sb.Height = function(region, value)
Nenue@10 531 w2 = value
Nenue@10 532 region:SetHeight(w2)
Nenue@10 533 end
Nenue@10 534 sb.Size = function(region, value)
Nenue@10 535 w1, w2 = unpack(value)
Nenue@10 536 region:SetSize(w1, w2)
Nenue@14 537 end
Nenue@14 538