# HG changeset patch # User Flick # Date 1290450318 28800 # Node ID c4b134512c5025f6ac27e551243cc8e8e96bce4a # Parent d08a74e86c967c33f407d81ad5395082740f7be7 Move RegisterBarType from modules to button classes diff -r d08a74e86c96 -r c4b134512c50 ReAction.lua --- a/ReAction.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/ReAction.lua Mon Nov 22 10:25:18 2010 -0800 @@ -31,6 +31,8 @@ ReAction.LKB = LKB +ReAction.barTypes = { } + ------ Handlers ------ function ReAction:OnInitialize() self.db = LibStub("AceDB-3.0"):New("ReAction_DB", @@ -41,7 +43,6 @@ self:UpgradeProfile() self.bars = { } - self.barTypes = { } self.LBF = LibStub("LibButtonFacade",true) if self.LBF then @@ -143,8 +144,9 @@ return nil end + local class if type(config) == "string" then - local class = self.barTypes[config] + class = self.barTypes[config] if not class then error(("ReAction:CreateBar() - unknown bar type '%s'"):format(config)) end @@ -161,8 +163,13 @@ config.relpoint = config.relpoint or "BOTTOM" config.y = config.y or 200 config.x = config.x or 0 + else + config = config or profile.bars[name] or { } + if not config or not config.type or not self.barTypes[config.type] then + error(("ReAction: Unable to construct/fetch config table for bar '%s'"):format(name)) + end + class = self.barTypes[config.type] end - config = config or profile.bars[name] or { } profile.bars[name] = config local bar = self.Bar:New( name, config ) -- ReAction.Bar defined in Bar.lua @@ -293,15 +300,6 @@ self:RefreshEditor() end -function ReAction:UnregisterBarType( class ) - local name = class:GetBarType() - self.barTypes[name] = nil - if self.defaultBarType == name then - self.defaultBarType = nil - end - self:RefreshEditor() -end - function ReAction:IterateBarTypes() return pairs(self.barTypes) end diff -r d08a74e86c96 -r c4b134512c50 classes/ActionButton.lua --- a/classes/ActionButton.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/classes/ActionButton.lua Mon Nov 22 10:25:18 2010 -0800 @@ -187,7 +187,9 @@ barType = L["Action Bar"] }, { __index = Super } ) + ReAction.Button.Action = Action +ReAction:RegisterBarType(Action, true) function Action:New( idx, barConfig, bar, idHint ) local name = format("ReAction_%s_Action_%d",bar:GetName(),idx) diff -r d08a74e86c96 -r c4b134512c50 classes/BagButton.lua --- a/classes/BagButton.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/classes/BagButton.lua Mon Nov 22 10:25:18 2010 -0800 @@ -38,6 +38,7 @@ local Keyring = setmetatable( { }, { __index = BagBase } ) ReAction.Button.Bag = BagBase +ReAction:RegisterBarType(BagBase) -- -- Bag Button base class diff -r d08a74e86c96 -r c4b134512c50 classes/MultiCastButton.lua --- a/classes/MultiCastButton.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/classes/MultiCastButton.lua Mon Nov 22 10:25:18 2010 -0800 @@ -318,7 +318,9 @@ barType = L["Totem Bar"], }, { __index = Action } ) + ReAction.Button.MultiCast = MultiCast +ReAction:RegisterBarType(MultiCast) function MultiCast:New( idx, btnConfig, bar ) local maxIndex = bar.nTotemSlots or 0 diff -r d08a74e86c96 -r c4b134512c50 classes/PetActionButton.lua --- a/classes/PetActionButton.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/classes/PetActionButton.lua Mon Nov 22 10:25:18 2010 -0800 @@ -73,7 +73,9 @@ barType = L["Pet Action Bar"], }, { __index = Super } ) + ReAction.Button.PetAction = Pet +ReAction:RegisterBarType(Pet) function Pet:New( idx, config, bar, idHint ) local name = format("ReAction_%s_PetAction_%d",bar:GetName(),idx) diff -r d08a74e86c96 -r c4b134512c50 classes/StanceButton.lua --- a/classes/StanceButton.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/classes/StanceButton.lua Mon Nov 22 10:25:18 2010 -0800 @@ -47,7 +47,9 @@ barType = L["Stance Bar"], }, { __index = Super } ) + ReAction.Button.Stance = Stance +ReAction:RegisterBarType(Stance) function Stance:New( idx, config, bar, idHint ) local name = format("ReAction_%s_Stance_%d",bar:GetName(),idx) diff -r d08a74e86c96 -r c4b134512c50 classes/VehicleExitButton.lua --- a/classes/VehicleExitButton.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/classes/VehicleExitButton.lua Mon Nov 22 10:25:18 2010 -0800 @@ -23,7 +23,9 @@ barType = L["Exit Vehicle Floater"], }, { __index = Super } ) + ReAction.Button.VehicleExit = VExitButton +ReAction:RegisterBarType(VExitButton) function VExitButton:New( idx, config, bar ) local name = format("ReAction_%s_VehicleExit_%d",bar:GetName(),idx) diff -r d08a74e86c96 -r c4b134512c50 modules/Action.lua --- a/modules/Action.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/modules/Action.lua Mon Nov 22 10:25:18 2010 -0800 @@ -29,12 +29,10 @@ end function module:OnEnable() - ReAction:RegisterBarType(Button, true) ReAction:GetModule("State"):RegisterStateProperty("page", nil, PropHandler.GetOptions(), PropHandler) end function module:OnDisable() - ReAction:UnregisterBarType(Button) ReAction:GetModule("State"):UnregisterStateProperty("page") end diff -r d08a74e86c96 -r c4b134512c50 modules/Bag.lua --- a/modules/Bag.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/modules/Bag.lua Mon Nov 22 10:25:18 2010 -0800 @@ -27,14 +27,6 @@ ReAction.RegisterCallback(self, "OnRefreshBar") end -function module:OnEnable() - ReAction:RegisterBarType(Button) -end - -function module:OnDisable() - ReAction:UnregisterBarType(Button) -end - function module:OnDestroyBar(event, bar, name) local btns = self.buttons[bar] if btns then diff -r d08a74e86c96 -r c4b134512c50 modules/PetAction.lua --- a/modules/PetAction.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/modules/PetAction.lua Mon Nov 22 10:25:18 2010 -0800 @@ -44,14 +44,6 @@ ReAction.RegisterCallback(self, "OnRefreshBar") end -function module:OnEnable() - ReAction:RegisterBarType(Button) -end - -function module:OnDisable() - ReAction:UnregisterBarType(Button) -end - function module:OnCreateBar(event, bar, name) if bar.config.type == moduleID then -- auto show/hide when pet exists diff -r d08a74e86c96 -r c4b134512c50 modules/Stance.lua --- a/modules/Stance.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/modules/Stance.lua Mon Nov 22 10:25:18 2010 -0800 @@ -27,14 +27,6 @@ ReAction.RegisterCallback(self, "OnRefreshBar") end -function module:OnEnable() - ReAction:RegisterBarType(Button) -end - -function module:OnDisable() - ReAction:UnregisterBarType(Button) -end - function module:OnDestroyBar(event, bar, name) local btns = self.buttons[bar] if btns then diff -r d08a74e86c96 -r c4b134512c50 modules/Totem.lua --- a/modules/Totem.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/modules/Totem.lua Mon Nov 22 10:25:18 2010 -0800 @@ -30,14 +30,6 @@ self:RegisterEvent("UPDATE_MULTI_CAST_ACTIONBAR","PLAYER_ENTERING_WORLD") end -function module:OnEnable() - ReAction:RegisterBarType(Button) -end - -function module:OnDisable() - ReAction:UnregisterBarType(Button) -end - function module:OnDestroyBar(event, bar, name) local btns = self.buttons[bar] if btns then diff -r d08a74e86c96 -r c4b134512c50 modules/VehicleExit.lua --- a/modules/VehicleExit.lua Sun Nov 21 14:42:38 2010 -0800 +++ b/modules/VehicleExit.lua Mon Nov 22 10:25:18 2010 -0800 @@ -31,14 +31,6 @@ ReAction.RegisterCallback(self, "OnRefreshBar") end -function module:OnEnable() - ReAction:RegisterBarType(Button) -end - -function module:OnDisable() - ReAction:UnregisterBarType(Button) -end - function module:OnCreateBar(event, bar, name) if bar.config.type == moduleID then self:OnRefreshBar(event, bar, name)