comparison ObjectiveFrame.lua @ 13:9455693fc290

Init - recall XML display state on reload ObjectiveFrame - quest coloring by relative level - quest coloring by daily/weekly/complete status - remember starting scroll value between reload - limit anchor points to edges for regions affected by style attributes ObjectiveInfo - AutoQuest outline definitions - Pull Quest title and tag data in addition to WatchInfo ObjectiveStyle - ensure consistent style table - hardcode certain attributes for sanity XML - ensure consistent naming conventions for heading and content elements - ensure hardcore anchors are based on edges - expansion of file structure to deal with complexities of dynamic widgets and style caching ObjectiveUI - determine primary style by block handler when restoring original style - moved framescript to 'ObjectiveWidgets' lua
author Nenue
date Sat, 02 Apr 2016 17:46:52 -0400
parents 8238cddaddb1
children ed642234f017
comparison
equal deleted inserted replaced
12:8238cddaddb1 13:9455693fc290
8 local ipairs, max, min, unpack, floor, pairs, tostring, type = ipairs, max, min, unpack, floor, pairs, tostring, type 8 local ipairs, max, min, unpack, floor, pairs, tostring, type = ipairs, max, min, unpack, floor, pairs, tostring, type
9 local IsResting, UnitXP, UnitXPMax, GetXPExhaustion = IsResting, UnitXP, UnitXPMax, GetXPExhaustion 9 local IsResting, UnitXP, UnitXPMax, GetXPExhaustion = IsResting, UnitXP, UnitXPMax, GetXPExhaustion
10 local UnitLevel, IsQuestWatched, UIParent = UnitLevel, IsQuestWatched, UIParent 10 local UnitLevel, IsQuestWatched, UIParent = UnitLevel, IsQuestWatched, UIParent
11 local CreateFrame = CreateFrame 11 local CreateFrame = CreateFrame
12 local print = B.print('Objectives') 12 local print = B.print('Objectives')
13 local unitLevel = 1
13 -------------------------------------------------------------------- 14 --------------------------------------------------------------------
14 --- Global frame layout 15 --- Global frame layout
15 -------------------------------------------------------------------- 16 --------------------------------------------------------------------
16 17
17 --- Upvalues 18 --- Upvalues
75 76
76 mod.UpdateActionButtons('SCROLLING') 77 mod.UpdateActionButtons('SCROLLING')
77 end 78 end
78 79
79 local WrapperCloseButton_OnClick = function(self) 80 local WrapperCloseButton_OnClick = function(self)
80 if Scroller:IsVisible() then 81 Wrapper:Minimize()
81 Scroller:Hide() 82 if B.Conf.FrameState[Wrapper:GetName()] == 1 then
82 else 83 self:GetNormalTexture():SetTexture([[Interface\PaperDollInfoFrame\UI-Character-SkillsPageDown-Up]])
83 Scroller:Show() 84 self:GetPushedTexture():SetTexture([[Interface\PaperDollInfoFrame\UI-Character-SkillsPageDown-Down]])
84 end 85 else
86 self:GetNormalTexture():SetTexture([[Interface\PaperDollInfoFrame\UI-Character-SkillsPageUp-Up]])
87 self:GetPushedTexture():SetTexture([[Interface\PaperDollInfoFrame\UI-Character-SkillsPageUp-Down]])
88 end
89 end
90 local WrapperCloseButton_OnMouseWheel = function(self, delta)
85 end 91 end
86 92
87 mod.InitializeTrackers = function() 93 mod.InitializeTrackers = function()
88 94
89 95
110 Scroller:SetScrollChild(Scroll) 116 Scroller:SetScrollChild(Scroll)
111 Scroller:SetScript('OnMouseWheel', Scroller_OnMouseWheel) 117 Scroller:SetScript('OnMouseWheel', Scroller_OnMouseWheel)
112 Scroller:SetScript('OnShow', Scroller_OnShow) 118 Scroller:SetScript('OnShow', Scroller_OnShow)
113 Scroller:SetScript('OnHide', Scroller_OnHide) 119 Scroller:SetScript('OnHide', Scroller_OnHide)
114 Wrapper.close:SetScript('OnClick', WrapperCloseButton_OnClick) 120 Wrapper.close:SetScript('OnClick', WrapperCloseButton_OnClick)
121 Wrapper.close:SetScript('OnMouseWheel', WrapperCloseButton_OnMouseWheel)
115 Wrapper:SetPoint(unpack(wrapperPosition)) 122 Wrapper:SetPoint(unpack(wrapperPosition))
116 Scroller_OnShow(Scroller) 123 if B.Conf.ObjectiveTrackerMinimized then
117 124 Scroller_OnShow(Scroller)
125 end
118 mod.UpdateWrapperStyle() 126 mod.UpdateWrapperStyle()
119 end 127 end
120 128
121 mod.InitializeXPTracker = function() 129 mod.InitializeXPTracker = function()
122 local XPBar = Wrapper.XPBar 130 local XPBar = Wrapper.XPBar
285 if info.isComplete then 293 if info.isComplete then
286 mainStyle = 'Complete' 294 mainStyle = 'Complete'
287 end 295 end
288 if info.superTracked then 296 if info.superTracked then
289 subStyle = 'Super' 297 subStyle = 'Super'
298 elseif info.isDaily then
299 subStyle = 'Daily'
290 end 300 end
291 301
292 if info.specialItem and not info.itemButton then 302 if info.specialItem and not info.itemButton then
293 print(' - |cFF00FFFFgenerating item button for info set') 303 print(' - |cFF00FFFFgenerating item button for info set')
294 info.itemButton = mod.SetItemButton(t, info) 304 info.itemButton = mod.SetItemButton(t, info)
295 else 305 else
296 --info.itemButton = nil 306 --info.itemButton = nil
297 end 307 end
298 308
309 if info.level then
310 local levelDiff = unitLevel - info.level
311 if levelDiff > 9 then
312 t.title:SetTextColor(0.7, 0.7, 0.7, 1)
313 elseif levelDiff > 1 then
314 t.title:SetTextColor(0.5, 1, 0.5, 1)
315 elseif levelDiff < -1 then
316 t.title:SetTextColor(1, 0.4, 0.25, 1)
317 elseif levelDiff < -4 then
318 t.title:SetTextColor(1, 0, 0, 1)
319 else
320 t.title:SetTextColor(1,1,1,1)
321 end
322 end
323
324
299 if Devian and Devian.InWorkspace() then 325 if Devian and Devian.InWorkspace() then
300 t.debugText:Show() 326 t.debugText:Show()
301 t.debugText:SetText(tostring(blockIndex) .. '\n' .. tostring(info.itemButton and info.itemButton:GetName())) 327 t.debugText:SetText(tostring(blockIndex) .. '\n' .. tostring(info.itemButton and info.itemButton:GetName()) .. "\n" .. (info.level and info.level or '-'))
302 end 328 end
303 329
304 --- metrics are calculated in SetStyle 330 --- metrics are calculated in SetStyle
305 t:SetStyle('TrackerBlock', handler.name, mainStyle, subStyle) 331 t:SetStyle('TrackerBlock', handler.name, mainStyle, subStyle)
306 t:Show() 332 t:Show()
438 464
439 mod.Quest.numButtons = 0 465 mod.Quest.numButtons = 0
440 local usedButtons = mod.Quest.itemButtons 466 local usedButtons = mod.Quest.itemButtons
441 local freeButtons = mod.Quest.freeButtons 467 local freeButtons = mod.Quest.freeButtons
442 mod.UpdateWrapper = function() 468 mod.UpdateWrapper = function()
469 unitLevel = UnitLevel('player')
443 wrapperWidth = wrapperMaxWidth 470 wrapperWidth = wrapperMaxWidth
444 scrollWidth = wrapperWidth 471 scrollWidth = wrapperWidth
445 local wrapperBlocks = 0 472 local wrapperBlocks = 0
446 -- Update scroll child vertical size 473 -- Update scroll child vertical size
447 scrollHeight = 0 474 scrollHeight = 0
496 mod.SetBlockStyle(Scroller, 'Scroller', 'Normal') 523 mod.SetBlockStyle(Scroller, 'Scroller', 'Normal')
497 mod.SetBlockStyle(Scroller, 'Scroll', 'Normal') 524 mod.SetBlockStyle(Scroller, 'Scroll', 'Normal')
498 mod.SetBlockStyle(Wrapper, 'Wrapper', 'Normal') 525 mod.SetBlockStyle(Wrapper, 'Wrapper', 'Normal')
499 526
500 Scroller:SetSize(wrapperWidth, wrapperHeight) 527 Scroller:SetSize(wrapperWidth, wrapperHeight)
501 Scroller:SetPoint('TOPLEFT', Wrapper, 'TOPLEFT', 0, -headerHeight) 528 Scroller:SetPoint('TOPLEFT', Wrapper, 'TOPLEFT', 0, 0)
502 Scroller:SetPoint('BOTTOMRIGHT', Wrapper, 'BOTTOMRIGHT') 529 Scroller:SetPoint('BOTTOMRIGHT', Wrapper, 'BOTTOMRIGHT')
503 530
504 531
505 Scroll:SetSize(scrollWidth, scrollHeight) 532 Scroll:SetSize(scrollWidth, scrollHeight)
506 Scroll:SetPoint('TOPLEFT', Scroller, 'TOPLEFT', 0, B.Conf.ObjectiveScroll or 0) 533 Scroll:SetPoint('TOPLEFT', Scroller, 'TOPLEFT', 0, B.Conf.ObjectiveScroll or 0)
507 Scroll:SetPoint('RIGHT', Scroller, 'RIGHT') 534 Scroll:SetPoint('RIGHT', Scroller, 'RIGHT')
508 535
509 --Scroller:UpdateScrollChildRect() 536 --Scroller:UpdateScrollChildRect()
510 Wrapper:SetSize(wrapperWidth, wrapperHeight + headerHeight) 537 Wrapper:SetSize(wrapperWidth, wrapperHeight)
511 538
512 -- update action buttons 539 -- update action buttons
513 print('|cFF00FF00'..Scroll:GetName()..'|r:', Scroll:GetWidth(), Scroll:GetHeight(), 540 print('|cFF00FF00'..Scroll:GetName()..'|r:', Scroll:GetWidth(), Scroll:GetHeight(),
514 '|cFF00FF00'..Scroller:GetName()..'|r:', Scroller:GetWidth(), Scroller:GetHeight(), 541 '|cFF00FF00'..Scroller:GetName()..'|r:', Scroller:GetWidth(), Scroller:GetHeight(),
515 '|cFF00FF00'..Wrapper:GetName()..'|r:', Wrapper:GetWidth(), Wrapper:GetHeight(), 542 '|cFF00FF00'..Wrapper:GetName()..'|r:', Wrapper:GetWidth(), Wrapper:GetHeight(),