Nenue@90: -- Veneer Nenue@90: -- Templates.lua Nenue@90: -- Created: 10/24/2016 9:16 AM Nenue@90: -- %file-revision% Nenue@90: -- Nenue@90: -- Mover Widget base Nenue@90: local print = DEVIAN_WORKSPACE and function(...) _G.print('VnTemplate', ...) end or nop Nenue@102: local debugTemplates = {} Nenue@90: Nenue@90: VeneerConfigLayerMixin = {} Nenue@90: VeneerAnimationMixin = {} Nenue@102: VeneerHandlerMixin = { Nenue@102: anchorPoint = 'CENTER', Nick@108: anchorPriority = 4, Nenue@102: data = {}, Nenue@102: } Nenue@90: Nenue@90: function VeneerConfigLayerMixin:OnLoad() Nenue@90: local handler = self:GetParent() Nenue@90: print(handler:GetName(), 'configLayers') Nenue@90: handler.ConfigLayers = handler.ConfigLayers or {} Nenue@90: for i, region in ipairs(handler.ConfigLayers) do Nenue@90: region:SetShown(Veneer.ConfigMode) Nenue@90: end Nenue@90: end Nenue@90: Nenue@90: function VeneerConfigLayerMixin:OnUpdate() Nenue@90: local handler = self:GetParent() Nenue@90: handler.ConfigLayers = handler.ConfigLayers or {} Nenue@90: Nenue@90: self.ConfigName:SetText(handler:GetName()) Nenue@90: self.ConfigID:SetText(handler:GetID()) Nenue@90: end Nenue@90: Nenue@90: function VeneerAnimationMixin:OnPlay() Nenue@90: PlaySoundKitID(229) Nenue@90: self.animating = true Nenue@90: print('|cFF00FF00Anim:OnPlay|r @', unpack(self.sourcePoint)) Nenue@90: end Nenue@90: function VeneerAnimationMixin:OnStop() Nenue@90: PlaySoundKitID(229) Nenue@90: self.animating = nil Nenue@90: print('|cFF00FF00Anim:OnFinish|r @', unpack(self.destPoint)) Nenue@90: end Nenue@90: function VeneerAnimationMixin:OnFinished() Nenue@90: PlaySoundKitID(229) Nenue@90: self.animating = nil Nenue@90: print('|cFF00FF00Anim:OnFinish|r @', unpack(self.destPoint)) Nenue@93: end Nenue@93: Nenue@93: function VeneerHandlerMixin:OnShow() Nenue@93: self:Reanchor() Nenue@93: Veneer:StaticReanchor(self) Nenue@93: end Nenue@93: function VeneerHandlerMixin:OnHide() Nenue@93: Veneer:DynamicReanchor() Nenue@93: end Nenue@93: function VeneerHandlerMixin:Reanchor (anchorAll) Nenue@99: Veneer:DynamicReanchor() Nenue@98: end Nenue@102: function VeneerHandlerMixin:Setup() Nenue@102: local configName = self:GetName():gsub('^Veneer', '') Nenue@107: VeneerData[configName] = VeneerData[configName] or self.defaultSettings or {} Nenue@102: Nenue@102: -- reconcile any data accumulated before login trigger Nenue@102: for k,v in pairs(self.data) do Nenue@102: if not VeneerData[configName][k] then Nenue@102: print('reconciling pre-data:', k, v) Nenue@102: VeneerData[configName][k] = v Nenue@102: end Nenue@102: end Nenue@107: local guid = UnitGUID('player') Nenue@102: self.data = VeneerData[configName] Nenue@107: self.data[guid] = self.data[guid] or {} Nenue@107: self.profile = self.data[guid] Nenue@102: print('data table loaded:', configName) Nenue@102: self.initialized = true Nenue@102: end Nenue@98: Nenue@98: function VeneerHandlerMixin:Print(...) Nenue@98: local txt = '|cFFFFFF00'..self:GetName()..'|r:' Nenue@98: for i = 1, select('#', ...) do Nenue@98: txt = txt .. ' '.. tostring(select(i, ...)) Nenue@98: end Nenue@98: Nenue@102: Nenue@102: Nenue@98: DEFAULT_CHAT_FRAME:AddMessage(txt) Nenue@103: end Nenue@103: Nenue@103: function VeneerHandlerMixin:UpdateConfigLayers (configMode) Nenue@103: -- Override to manage config visual elements when a config update is fired from /vn or login Nenue@103: if not self:IsShown() then Nenue@103: self:SetShown(configMode) Nenue@103: self:Reanchor() Nenue@103: end Nenue@103: self.configMode = configMode Nenue@90: end