Mercurial > wow > buffalo2
diff Veneer.lua @ 109:26938ae258b7
- Re-use the basic addon table for core mixin
- add /rl command
author | Nick@Zahhak |
---|---|
date | Mon, 06 Mar 2017 02:30:22 -0500 |
parents | a41f6b74709a |
children | 7c77fde36287 |
line wrap: on
line diff
--- a/Veneer.lua Sat Feb 25 11:42:07 2017 -0500 +++ b/Veneer.lua Mon Mar 06 02:30:22 2017 -0500 @@ -4,16 +4,17 @@ -- 3. Setup() where (not self.initialized) -- 4. Update() -- 5. Reanchor() - -SLASH_VENEER1 = "/veneer" -SLASH_VENEER2 = "/vn" +local ADDON, Veneer = ... local VENEER_VERSION = 703 local LE_FREE_FRAMES_GROUP = 1 local type, strrep, ipairs, tinsert, tostring, select = type, string.rep, ipairs, tinsert, tostring, select local pairs, tremove = pairs, tremove +local print = DEVIAN_WORKSPACE and function(...) _G.print('Veneer', ...) end or nop +local wipe = table.wipe +SLASH_VENEER1 = "/veneer" +SLASH_VENEER2 = "/vn" SlashCmdList.VENEER = function(cmd) - if Veneer.ConfigMode then Veneer.ConfigMode = false else @@ -22,19 +23,14 @@ Veneer:UpdateConfigLayers() end -VeneerCore = { - Frames = {}, - ConfigLayers = {}, - FrameClusters = { - [LE_FREE_FRAMES_GROUP] = {}, - }, - parserDepth = 0, - pendingCalls = {}, - AddOnCheck = {} -} - -local print = DEVIAN_WORKSPACE and function(...) _G.print('Veneer', ...) end or nop -local wipe = table.wipe +Veneer.Frames = {} +Veneer.ConfigLayers = {} +Veneer.FrameClusters = { + [LE_FREE_FRAMES_GROUP] = {} + } +Veneer.parserDepth = 0 +Veneer.pendingCalls = {} +Veneer.AddOnCheck = {} local defaults = { enableAll = true, @@ -84,7 +80,7 @@ CENTER = {0, 0}, } -function VeneerCore:print(...) +function Veneer:print(...) local txt = '|cFFFFFF00Veneer|r:' for i = 1, select('#', ...) do txt = txt .. ' '.. tostring(select(i, ...)) @@ -93,7 +89,7 @@ DEFAULT_CHAT_FRAME:AddMessage(txt) end -function VeneerCore:OnLoad() +function Veneer:OnLoad() print('|cFFFFFF00Veneer!|r') self:RegisterEvent('ADDON_LOADED') self:RegisterEvent('PLAYER_LOGIN') @@ -106,7 +102,7 @@ local select, IsAddOnLoaded, IsLoggedIn = select, IsAddOnLoaded, IsLoggedIn -function VeneerCore:OnEvent(event, ...) +function Veneer:OnEvent(event, ...) print('|cFFFF0088OnEvent()|r',event, ...) if (event == 'PLAYER_LOGIN') or (event == 'ADDON_LOADED') then print(IsLoggedIn(), self.initialized) @@ -138,11 +134,11 @@ end end -function VeneerCore:OnDragStart() +function Veneer:OnDragStart() self:StartMoving() end -function VeneerCore:OnDragStop() +function Veneer:OnDragStop() self:StopMovingOrSizing() end @@ -154,13 +150,13 @@ frame:Setup() frame.initialized = true else - Veneer:RegisterEvent('ADDON_LOADED') + frame:RegisterEvent('ADDON_LOADED') end end end -function VeneerCore:Setup () +function Veneer:Setup () print('|cFFFF0088Setup()|r') local resetConfig = (not VeneerData) if (not VeneerData) then @@ -176,7 +172,7 @@ self:Update() end -function VeneerCore:UpdateConfigLayers() +function Veneer:UpdateConfigLayers() if VeneerData then VeneerData.ConfigMode = self.ConfigMode @@ -208,7 +204,7 @@ end -function VeneerCore:GetClusterFromArgs (...) +function Veneer:GetClusterFromArgs (...) local primaryAnchor local insertPosition local insertPriority @@ -264,7 +260,7 @@ end -- args: frame object, list of anchor groups, true for forced top, number for priority layer -function VeneerCore:AddHandler(handler, ...) +function Veneer:AddHandler(handler, ...) print('|cFFFFFF00*** Adding handler:', handler.moduleName or handler:GetName()) @@ -319,12 +315,12 @@ end end -function VeneerCore:Reanchor() +function Veneer:Reanchor() self:ExecuteOnClusters(nil, 'Reanchor') self:DynamicReanchor(self) end -function VeneerCore:Update() +function Veneer:Update() self:ExecuteOnClusters(nil, function(frame) if frame.initialized and frame.Update then frame:Update() @@ -334,13 +330,13 @@ end -- updates anchor relations to and from the target handler -function VeneerCore:GetAnchor(...) +function Veneer:GetAnchor(...) end -- Evaluates frames visibility and chains them accordingly -function VeneerCore:DynamicReanchor(parent) +function Veneer:DynamicReanchor(parent) parent = parent or self print('|cFF88FF00DynamicReanchor()') for anchorPoint, cluster in pairs(parent.FrameClusters) do @@ -375,7 +371,7 @@ end -- Evaluates the current visibility state and re-anchors adjacent blocks accordingly -function VeneerCore:InternalReanchor(handler, printFunc) +function Veneer:InternalReanchor(handler, printFunc) print('|cFF00FFFFVeneer:InternalReanchor('..handler:GetName()..')') if handler.anchorFrame then handler:SetPoint(handler.anchorPoint, handler.anchorFrame, handler.anchorFrom, handler.anchorX, handler.anchorY) @@ -424,7 +420,7 @@ end end -function VeneerCore:SlideBlock(frame, ...) +function Veneer:SlideBlock(frame, ...) local aX, aY = frame:GetLeft(), frame:GetTop() frame:SetPoint('TOPLEFT', frame, 'BOTTOMLEFT', aX, aY) @@ -441,7 +437,7 @@ end -function VeneerCore:ExecuteOnClusters(layer, method) +function Veneer:ExecuteOnClusters(layer, method) self.parserDepth = self.parserDepth + 1 if not layer then if self.parserDepth > 1 then @@ -481,7 +477,7 @@ -- Takes frame handle and assigns a block to it -function VeneerCore:Acquire (frame, template) +function Veneer:Acquire (frame, template) if not frame then print('|cFFFF4400Unable to acquire frame...|r') return @@ -504,4 +500,6 @@ self.Frames[frame] = veneer end return veneer -end \ No newline at end of file +end + +VeneerCore = Veneer \ No newline at end of file