annotate Templates.lua @ 108:a41f6b74709a

- Handler number and boolean cluster arguments as positioning priority layer and "always top" respectively - Use SetShown and IsShown instead of IsVisible in doing full re-anchor checks
author Nick@Zahhak
date Sat, 25 Feb 2017 11:42:07 -0500
parents ff00679a7817
children 26938ae258b7
rev   line source
Nenue@90 1 -- Veneer
Nenue@90 2 -- Templates.lua
Nenue@90 3 -- Created: 10/24/2016 9:16 AM
Nenue@90 4 -- %file-revision%
Nenue@90 5 --
Nenue@90 6 -- Mover Widget base
Nenue@90 7 local print = DEVIAN_WORKSPACE and function(...) _G.print('VnTemplate', ...) end or nop
Nenue@102 8 local debugTemplates = {}
Nenue@90 9
Nenue@90 10 VeneerConfigLayerMixin = {}
Nenue@90 11 VeneerAnimationMixin = {}
Nenue@102 12 VeneerHandlerMixin = {
Nenue@102 13 anchorPoint = 'CENTER',
Nick@108 14 anchorPriority = 4,
Nenue@102 15 data = {},
Nenue@102 16 }
Nenue@90 17
Nenue@90 18 function VeneerConfigLayerMixin:OnLoad()
Nenue@90 19 local handler = self:GetParent()
Nenue@90 20 print(handler:GetName(), 'configLayers')
Nenue@90 21 handler.ConfigLayers = handler.ConfigLayers or {}
Nenue@90 22 for i, region in ipairs(handler.ConfigLayers) do
Nenue@90 23 region:SetShown(Veneer.ConfigMode)
Nenue@90 24 end
Nenue@90 25 end
Nenue@90 26
Nenue@90 27 function VeneerConfigLayerMixin:OnUpdate()
Nenue@90 28 local handler = self:GetParent()
Nenue@90 29 handler.ConfigLayers = handler.ConfigLayers or {}
Nenue@90 30
Nenue@90 31 self.ConfigName:SetText(handler:GetName())
Nenue@90 32 self.ConfigID:SetText(handler:GetID())
Nenue@90 33 end
Nenue@90 34
Nenue@90 35 function VeneerAnimationMixin:OnPlay()
Nenue@90 36 PlaySoundKitID(229)
Nenue@90 37 self.animating = true
Nenue@90 38 print('|cFF00FF00Anim:OnPlay|r @', unpack(self.sourcePoint))
Nenue@90 39 end
Nenue@90 40 function VeneerAnimationMixin:OnStop()
Nenue@90 41 PlaySoundKitID(229)
Nenue@90 42 self.animating = nil
Nenue@90 43 print('|cFF00FF00Anim:OnFinish|r @', unpack(self.destPoint))
Nenue@90 44 end
Nenue@90 45 function VeneerAnimationMixin:OnFinished()
Nenue@90 46 PlaySoundKitID(229)
Nenue@90 47 self.animating = nil
Nenue@90 48 print('|cFF00FF00Anim:OnFinish|r @', unpack(self.destPoint))
Nenue@93 49 end
Nenue@93 50
Nenue@93 51 function VeneerHandlerMixin:OnShow()
Nenue@93 52 self:Reanchor()
Nenue@93 53 Veneer:StaticReanchor(self)
Nenue@93 54 end
Nenue@93 55 function VeneerHandlerMixin:OnHide()
Nenue@93 56 Veneer:DynamicReanchor()
Nenue@93 57 end
Nenue@93 58 function VeneerHandlerMixin:Reanchor (anchorAll)
Nenue@99 59 Veneer:DynamicReanchor()
Nenue@98 60 end
Nenue@102 61 function VeneerHandlerMixin:Setup()
Nenue@102 62 local configName = self:GetName():gsub('^Veneer', '')
Nenue@107 63 VeneerData[configName] = VeneerData[configName] or self.defaultSettings or {}
Nenue@102 64
Nenue@102 65 -- reconcile any data accumulated before login trigger
Nenue@102 66 for k,v in pairs(self.data) do
Nenue@102 67 if not VeneerData[configName][k] then
Nenue@102 68 print('reconciling pre-data:', k, v)
Nenue@102 69 VeneerData[configName][k] = v
Nenue@102 70 end
Nenue@102 71 end
Nenue@107 72 local guid = UnitGUID('player')
Nenue@102 73 self.data = VeneerData[configName]
Nenue@107 74 self.data[guid] = self.data[guid] or {}
Nenue@107 75 self.profile = self.data[guid]
Nenue@102 76 print('data table loaded:', configName)
Nenue@102 77 self.initialized = true
Nenue@102 78 end
Nenue@98 79
Nenue@98 80 function VeneerHandlerMixin:Print(...)
Nenue@98 81 local txt = '|cFFFFFF00'..self:GetName()..'|r:'
Nenue@98 82 for i = 1, select('#', ...) do
Nenue@98 83 txt = txt .. ' '.. tostring(select(i, ...))
Nenue@98 84 end
Nenue@98 85
Nenue@102 86
Nenue@102 87
Nenue@98 88 DEFAULT_CHAT_FRAME:AddMessage(txt)
Nenue@103 89 end
Nenue@103 90
Nenue@103 91 function VeneerHandlerMixin:UpdateConfigLayers (configMode)
Nenue@103 92 -- Override to manage config visual elements when a config update is fired from /vn or login
Nenue@103 93 if not self:IsShown() then
Nenue@103 94 self:SetShown(configMode)
Nenue@103 95 self:Reanchor()
Nenue@103 96 end
Nenue@103 97 self.configMode = configMode
Nenue@90 98 end