Mercurial > wow > reaction
comparison modules/Stance.lua @ 222:d08a74e86c96
un-namespace totem, pet, stance, vehicle exit
| author | Flick <flickerstreak@gmail.com> |
|---|---|
| date | Sun, 21 Nov 2010 14:42:38 -0800 |
| parents | e63aefb8a555 |
| children | c4b134512c50 |
comparison
equal
deleted
inserted
replaced
| 221:bb13624de7e1 | 222:d08a74e86c96 |
|---|---|
| 18 -- mixins go here | 18 -- mixins go here |
| 19 ) | 19 ) |
| 20 | 20 |
| 21 -- handlers | 21 -- handlers |
| 22 function module:OnInitialize() | 22 function module:OnInitialize() |
| 23 self.db = ReAction.db:RegisterNamespace( moduleID, | |
| 24 { | |
| 25 profile = { | |
| 26 buttons = { } | |
| 27 } | |
| 28 } | |
| 29 ) | |
| 30 | |
| 31 self.buttons = { } | 23 self.buttons = { } |
| 32 | 24 |
| 33 ReAction.RegisterCallback(self, "OnCreateBar", "OnRefreshBar") | 25 ReAction.RegisterCallback(self, "OnCreateBar", "OnRefreshBar") |
| 34 ReAction.RegisterCallback(self, "OnDestroyBar") | 26 ReAction.RegisterCallback(self, "OnDestroyBar") |
| 35 ReAction.RegisterCallback(self, "OnRefreshBar") | 27 ReAction.RegisterCallback(self, "OnRefreshBar") |
| 36 ReAction.RegisterCallback(self, "OnEraseBar") | |
| 37 ReAction.RegisterCallback(self, "OnRenameBar") | |
| 38 end | 28 end |
| 39 | 29 |
| 40 function module:OnEnable() | 30 function module:OnEnable() |
| 41 ReAction:RegisterBarType(Button) | 31 ReAction:RegisterBarType(Button) |
| 42 end | 32 end |
| 56 self.buttons[bar] = nil | 46 self.buttons[bar] = nil |
| 57 end | 47 end |
| 58 end | 48 end |
| 59 | 49 |
| 60 function module:OnRefreshBar(event, bar, name) | 50 function module:OnRefreshBar(event, bar, name) |
| 61 if bar.config.type == moduleID then | 51 local config = bar:GetConfig() |
| 52 if config.type == moduleID then | |
| 62 local btns = self.buttons[bar] | 53 local btns = self.buttons[bar] |
| 63 if btns == nil then | 54 if btns == nil then |
| 64 btns = { } | 55 btns = { } |
| 65 self.buttons[bar] = btns | 56 self.buttons[bar] = btns |
| 66 end | 57 end |
| 67 local profile = self.db.profile | 58 if not config.buttons then |
| 68 if profile.buttons[name] == nil then | 59 config.buttons = { } |
| 69 profile.buttons[name] = {} | |
| 70 end | 60 end |
| 71 local btnCfg = profile.buttons[name] | 61 local btnCfg = config.buttons |
| 72 | 62 |
| 73 local r, c = bar:GetButtonGrid() | 63 local r, c = bar:GetButtonGrid() |
| 74 local n = r*c | 64 local n = r*c |
| 75 for i = 1, n do | 65 for i = 1, n do |
| 76 if btnCfg[i] == nil then | 66 if btnCfg[i] == nil then |
| 77 btnCfg[i] = {} | 67 btnCfg[i] = {} |
| 78 end | 68 end |
| 79 if btns[i] == nil then | 69 if btns[i] == nil then |
| 80 local success, r = pcall(Button.New,Button,i,profile,bar,i>1 and btnCfg[i-1].stanceID) | 70 local success, r = pcall(Button.New,Button,i,btnCfg,bar,i>1 and btnCfg[i-1].stanceID) |
| 81 if success and r then | 71 if success and r then |
| 82 btns[i] = r | 72 btns[i] = r |
| 83 bar:AddButton(i,r) | 73 bar:AddButton(i,r) |
| 84 else | 74 else |
| 85 n = i - 1 | 75 n = i - 1 |
| 100 end | 90 end |
| 101 end | 91 end |
| 102 | 92 |
| 103 end | 93 end |
| 104 | 94 |
| 105 function module:OnEraseBar(event, bar, name) | |
| 106 self.db.profile.buttons[name] = nil | |
| 107 end | |
| 108 | |
| 109 function module:OnRenameBar(event, bar, oldName, newName) | |
| 110 local b = self.db.profile.buttons | |
| 111 b[newname], b[oldname] = b[oldname], nil | |
| 112 end | |
| 113 | |
| 114 function module:RefreshAll() | |
| 115 for bar in pairs(self.buttons) do | |
| 116 self:OnRefreshBar(nil,bar,bar:GetName()) | |
| 117 end | |
| 118 end | |
| 119 |
