diff Templates.lua @ 102:1e511e9aaca5

- clean up handler loading inconsistencies; exclude free frames from anchor cluster iterations, and remove extraneous PLAYER_LOGIN handling - added a Setup method to the handler template that creates and reconciles a SavedVariables table for that module
author Nenue
date Wed, 25 Jan 2017 23:11:27 -0500
parents 74d6d97a2d24
children 8df154a2bfd6
line wrap: on
line diff
--- a/Templates.lua	Sat Jan 21 20:12:17 2017 -0500
+++ b/Templates.lua	Wed Jan 25 23:11:27 2017 -0500
@@ -5,10 +5,14 @@
 --
 -- Mover Widget base
 local print = DEVIAN_WORKSPACE and function(...) _G.print('VnTemplate', ...) end or nop
+local debugTemplates = {}
 
 VeneerConfigLayerMixin = {}
 VeneerAnimationMixin = {}
-VeneerHandlerMixin = { anchorPoint = 'CENTER' }
+VeneerHandlerMixin = {
+  anchorPoint = 'CENTER',
+  data = {},
+}
 
 function VeneerConfigLayerMixin:OnLoad()
   local handler = self:GetParent()
@@ -53,6 +57,22 @@
 function VeneerHandlerMixin:Reanchor (anchorAll)
   Veneer:DynamicReanchor()
 end
+function VeneerHandlerMixin:Setup()
+  local configName = self:GetName():gsub('^Veneer', '')
+  VeneerData[configName] = VeneerData[configName] or {}
+
+  -- reconcile any data accumulated before login trigger
+  for k,v in pairs(self.data) do
+    if not VeneerData[configName][k] then
+      print('reconciling pre-data:', k, v)
+      VeneerData[configName][k] = v
+    end
+  end
+
+  self.data = VeneerData[configName]
+  print('data table loaded:', configName)
+  self.initialized = true
+end
 
 function VeneerHandlerMixin:Print(...)
   local txt = '|cFFFFFF00'..self:GetName()..'|r:'
@@ -60,5 +80,7 @@
     txt = txt .. ' '.. tostring(select(i, ...))
   end
 
+
+
   DEFAULT_CHAT_FRAME:AddMessage(txt)
 end
\ No newline at end of file