comparison ObjectiveWidgets.lua @ 19:605e8f0e46db

ObjectiveCore / Style / Events / Frame - polishing the execution path for better performance - make use of the Blizzard_ObjectiveTracker bitfield values to ensure compatibility in possible secure hooks - avoid full updates when possible (using said bitfield values to indicate targeted sections) - extreme streamlining of event handling layout: specific reason updates are invoked from API hooks; broader updates are invoked by when the event listener catches something vague like 'QUEST_LOG_UPDATE'
author Nenue
date Wed, 06 Apr 2016 07:38:35 -0400
parents 880828018bf4
children d5ee940de273
comparison
equal deleted inserted replaced
18:d1812fb10ae6 19:605e8f0e46db
45 } 45 }
46 } 46 }
47 47
48 local Scroller_OnShow = function() 48 local Scroller_OnShow = function()
49 Wrapper.watchMoneyReasons = 0; 49 Wrapper.watchMoneyReasons = 0;
50 mod.UpdateWrapper() 50 --mod:Update()
51 mod.SetEvents() 51 --mod:OnInitialize()
52 for i, region in ipairs(Wrapper.headerComplex) do 52 for i, region in ipairs(Wrapper.headerComplex) do
53 region:Show() 53 region:Show()
54 end 54 end
55 end 55 end
56 56
101 101
102 OnClick.QuestMapButton = function() 102 OnClick.QuestMapButton = function()
103 ToggleWorldMap() 103 ToggleWorldMap()
104 end 104 end
105 105
106 mod.InitializeWrapperWidgets = function() 106 mod.InitializeWidgets = function()
107 --- tracker scroll 107 --- tracker scroll
108 Scroller:SetScript('OnMouseWheel', Scroller_OnMouseWheel) 108 Scroller:SetScript('OnMouseWheel', Scroller_OnMouseWheel)
109 Scroller:SetScript('OnShow', Scroller_OnShow) 109 Scroller:SetScript('OnShow', Scroller_OnShow)
110 Scroller:SetScript('OnHide', Scroller_OnHide) 110 Scroller:SetScript('OnHide', Scroller_OnHide)
111 for name, swatch in pairs(panelButtons) do 111 for name, swatch in pairs(panelButtons) do
309 --- WidgetTemplate 'OnShow' 309 --- WidgetTemplate 'OnShow'
310 mod.InitializeWidget = setmetatable({}, { 310 mod.InitializeWidget = setmetatable({}, {
311 __call = function(t, frame) 311 __call = function(t, frame)
312 -- todo: config pull 312 -- todo: config pull
313 313
314 frame:SetWidth(mod.Conf.Wrapper.WrapperWidth - mod.Conf.Style.Format.status.Indent * 2) 314 frame:SetWidth(mod.Conf.Wrapper.Width - mod.Conf.Style.Format.status.Indent * 2)
315 frame:SetScript('OnEvent', mod.UpdateWidget[frame.widgetType]) 315 frame:SetScript('OnEvent', mod.UpdateWidget[frame.widgetType])
316 if frame.info.isCurrency then 316 if frame.info.isCurrency then
317 frame:RegisterEvent('CHAT_MSG_CURRENCY') 317 frame:RegisterEvent('CHAT_MSG_CURRENCY')
318 frame:RegisterEvent('CURRENCY_LIST_UPDATE') 318 frame:RegisterEvent('CURRENCY_LIST_UPDATE')
319 end 319 end