comparison modules/ReAction_Action/ReAction_Action.lua @ 48:7b7d178dec52

Implemented bar-type selection, extended CreateBar functionality
author Flick <flickerstreak@gmail.com>
date Sat, 12 Apr 2008 00:15:09 +0000
parents 0d95ce7a9ec2
children dcf8116560a1
comparison
equal deleted inserted replaced
47:e12b736c23c3 48:7b7d178dec52
29 ) 29 )
30 self.buttons = { } 30 self.buttons = { }
31 end 31 end
32 32
33 function module:OnEnable() 33 function module:OnEnable()
34 ReAction:RegisterDefaultBarConfig(L["Action Bar"], { type = "actionbar" }, true)
34 end 35 end
35 36
36 function module:OnDisable() 37 function module:OnDisable()
38 ReAction:UnregisterDefaultBarConfig(L["Action Bar"])
37 end 39 end
38 40
39 function module:ApplyToBar(bar) 41 function module:ApplyToBar(bar)
40 self:RefreshBar(bar) 42 if bar.config.type == "actionbar" then
43 self:RefreshBar(bar)
44 end
41 end 45 end
42 46
43 function module:RefreshBar(bar) 47 function module:RefreshBar(bar)
44 if self.buttons[bar] == nil then 48 if bar.config.type == "actionbar" then
45 self.buttons[bar] = { } 49 if self.buttons[bar] == nil then
46 end 50 self.buttons[bar] = { }
47 local btns = self.buttons[bar] 51 end
48 local profile = self.db.profile 52 local btns = self.buttons[bar]
49 local barName = bar:GetName() 53 local profile = self.db.profile
50 if profile.buttons[barName] == nil then 54 local barName = bar:GetName()
51 profile.buttons[barName] = {} 55 if profile.buttons[barName] == nil then
52 end 56 profile.buttons[barName] = {}
53 local btnCfg = profile.buttons[barName] 57 end
54 58 local btnCfg = profile.buttons[barName]
55 local r, c = bar:GetButtonGrid() 59
56 local n = r*c 60 local r, c = bar:GetButtonGrid()
57 for i = 1, n do 61 local n = r*c
58 if btnCfg[i] == nil then 62 for i = 1, n do
59 btnCfg[i] = {} 63 if btnCfg[i] == nil then
60 end 64 btnCfg[i] = {}
61 if btns[i] == nil then 65 end
62 btns[i] = self.BtnClass:new(bar,i,btnCfg[i]) 66 if btns[i] == nil then
63 else 67 btns[i] = self.BtnClass:new(bar,i,btnCfg[i])
64 btns[i]:Refresh(bar,i) 68 else
65 end 69 btns[i]:Refresh(bar,i)
66 end 70 end
67 for i = n+1, #btns do 71 end
68 btns[i] = btns[i]:Destroy() 72 for i = n+1, #btns do
69 if btnCfg[i] then 73 btns[i] = btns[i]:Destroy()
70 btnCfg[i] = nil 74 if btnCfg[i] then
75 btnCfg[i] = nil
76 end
71 end 77 end
72 end 78 end
73 end 79 end
74 80
75 function module:RemoveFromBar(bar) 81 function module:RemoveFromBar(bar)
84 end 90 end
85 end 91 end
86 92
87 function module:EraseBarConfig(barName) 93 function module:EraseBarConfig(barName)
88 self.db.profile.buttons[barName] = nil 94 self.db.profile.buttons[barName] = nil
95 end
96
97 function module:RenameBarConfig(oldname, newname)
98 local b = self.db.profile.buttons
99 b[newname], b[oldname] = b[oldname], nil
89 end 100 end
90 101
91 function module:ApplyConfigMode(mode,bars) 102 function module:ApplyConfigMode(mode,bars)
92 for _, btns in pairs(self.buttons) do 103 for _, btns in pairs(self.buttons) do
93 if btn then 104 if btn then
111 end 122 end
112 end 123 end
113 end 124 end
114 end 125 end
115 126
116 function module:GetGlobalBarOptions(opts)
117 if self.globalBarOpts == nil then
118 self.globalBarOpts = {
119 newActionBar = {
120 type = "execute",
121 name = L["New Action Bar"],
122 desc = L["Create a new bar of standard action buttons"],
123 func = function()
124 ReAction:CreateBar()
125 end,
126 disabled = InCombatLockdown,
127 }
128 }
129 end
130 return self.globalBarOpts
131 end
132
133 function module:GetBarMenuOptions(bar)
134 if not bar.modMenuOpts[moduleID] then
135 bar.modMenuOpts[moduleID] = {
136 }
137 end
138 return bar.modMenuOpts[moduleID]
139 end
140
141 function module:GetBarConfigOptions(bar)
142 if not bar.modConfigOpts[moduleID] then
143 bar.modConfigOpts[moduleID] = {
144 }
145 end
146 return bar.modConfigOpts[moduleID]
147 end
148
149
150
151 -- use-count of action IDs 127 -- use-count of action IDs
152 local ActionIDList = setmetatable( {}, { 128 local ActionIDList = setmetatable( {}, {
153 __index = function(self, idx) 129 __index = function(self, idx)
154 if idx == nil then 130 if idx == nil then
155 for i = 1, 120 do 131 for i = 1, 120 do