Mercurial > wow > reaction
comparison modules/ReAction_Action/ReAction_Action.lua @ 49:dcf8116560a1
added hide empty buttons
author | Flick <flickerstreak@gmail.com> |
---|---|
date | Mon, 14 Apr 2008 23:03:19 +0000 |
parents | 7b7d178dec52 |
children | c3c64e2def50 |
comparison
equal
deleted
inserted
replaced
48:7b7d178dec52 | 49:dcf8116560a1 |
---|---|
26 buttons = { } | 26 buttons = { } |
27 } | 27 } |
28 } | 28 } |
29 ) | 29 ) |
30 self.buttons = { } | 30 self.buttons = { } |
31 | |
32 ReAction:RegisterOptions("global", self, { | |
33 hideEmpty = { | |
34 type = "toggle", | |
35 name = L["Hide Empty Buttons"], | |
36 get = function() return self.db.profile.hideEmptyButtons end, | |
37 set = function(info, val) module:SetHideEmptyButtons(val) end, | |
38 } | |
39 }) | |
31 end | 40 end |
32 | 41 |
33 function module:OnEnable() | 42 function module:OnEnable() |
34 ReAction:RegisterDefaultBarConfig(L["Action Bar"], { type = "actionbar" }, true) | 43 ReAction:RegisterDefaultBarConfig(L["Action Bar"], { type = "actionbar" }, true) |
35 end | 44 end |
97 function module:RenameBarConfig(oldname, newname) | 106 function module:RenameBarConfig(oldname, newname) |
98 local b = self.db.profile.buttons | 107 local b = self.db.profile.buttons |
99 b[newname], b[oldname] = b[oldname], nil | 108 b[newname], b[oldname] = b[oldname], nil |
100 end | 109 end |
101 | 110 |
111 function module:SetHideEmptyButtons(hide) | |
112 if hide ~= self.db.profile.hideEmptyButtons then | |
113 for _, bar in pairs(self.buttons) do | |
114 for _, b in pairs(bar) do | |
115 if hide then | |
116 ActionButton_HideGrid(b.frame) | |
117 else | |
118 ActionButton_ShowGrid(b.frame) | |
119 end | |
120 end | |
121 end | |
122 self.db.profile.hideEmptyButtons = hide | |
123 end | |
124 end | |
125 | |
102 function module:ApplyConfigMode(mode,bars) | 126 function module:ApplyConfigMode(mode,bars) |
103 for _, btns in pairs(self.buttons) do | 127 for _, bar in pairs(bars) do |
104 if btn then | 128 if bar and self.buttons[bar] then |
105 for _, b in pairs(btns) do | 129 for _, b in pairs(self.buttons[bar]) do |
106 if b then | 130 if b then |
107 if mode then | 131 if mode then |
132 ActionButton_ShowGrid(b.frame) | |
108 if not b.actionIDLabel then | 133 if not b.actionIDLabel then |
109 local label = b:GetFrame():CreateFontString(nil,"OVERLAY","GameFontNormalLarge") | 134 local label = b:GetFrame():CreateFontString(nil,"OVERLAY","GameFontNormalLarge") |
110 label:SetAllPoints() | 135 label:SetAllPoints() |
111 label:SetJustifyH("CENTER") | 136 label:SetJustifyH("CENTER") |
112 label:SetShadowColor(0,0,0,1) | 137 label:SetShadowColor(0,0,0,1) |
113 label:SetShadowOffset(2,-2) | 138 label:SetShadowOffset(2,-2) |
114 label:SetText(tostring(b:GetActionID())) | 139 label:SetText(tostring(b:GetActionID())) |
115 b.actionIDLabel = label | 140 b.actionIDLabel = label |
116 end | 141 end |
117 b.actionIDLabel:Show() | 142 b.actionIDLabel:Show() |
118 elseif b.actionIDLabel then | 143 else |
119 b.actionIDLabel:Hide() | 144 if b.actionIDLabel then |
145 b.actionIDLabel:Hide() | |
146 end | |
147 ActionButton_HideGrid(b.frame) | |
120 end | 148 end |
149 | |
121 end | 150 end |
122 end | 151 end |
123 end | 152 end |
124 end | 153 end |
125 end | 154 end |
162 local function Constructor( self, bar, idx, config ) | 191 local function Constructor( self, bar, idx, config ) |
163 self.bar, self.idx, self.config = bar, idx, config | 192 self.bar, self.idx, self.config = bar, idx, config |
164 | 193 |
165 local barFrame = bar:GetFrame() | 194 local barFrame = bar:GetFrame() |
166 | 195 |
167 self.name = config.name or "ReAction_"..bar:GetName().."_"..idx | 196 config.name = config.name or "ReAction_"..bar:GetName().."_"..idx |
197 self.name = config.name | |
168 config.actionID = ActionIDList[config.actionID] -- gets a free one if none configured | 198 config.actionID = ActionIDList[config.actionID] -- gets a free one if none configured |
169 | 199 |
170 local f = CreateFrame("CheckButton", self.name, barFrame, "ActionBarButtonTemplate") | 200 local f = CreateFrame("CheckButton", self.name, barFrame, "ActionBarButtonTemplate") |
201 | |
171 -- TODO: re-implement ActionButton event handlers that don't do secure stuff | 202 -- TODO: re-implement ActionButton event handlers that don't do secure stuff |
172 | 203 |
173 -- this will probably cause taint, using right now for display/debugging purposes | 204 -- this will probably cause taint, using right now for display/debugging purposes |
174 f:SetScript("OnAttributeChanged", ActionButton_UpdateAction) | 205 f:SetScript("OnAttributeChanged", ActionButton_UpdateAction) |
175 f:SetAttribute("action", config.actionID) | 206 f:SetAttribute("action", config.actionID) |
207 | |
176 barFrame:SetAttribute("addchild",f) | 208 barFrame:SetAttribute("addchild",f) |
209 | |
177 self.frame = f | 210 self.frame = f |
178 self:Refresh(bar,idx) | 211 self:Refresh(bar,idx) |
212 | |
213 if not module.db.profile.hideEmptyButtons then | |
214 ActionButton_ShowGrid(self.frame) | |
215 end | |
179 end | 216 end |
180 | 217 |
181 function Button:Destroy() | 218 function Button:Destroy() |
182 local f = self.frame | 219 local f = self.frame |
183 f:UnregisterAllEvents() | 220 f:UnregisterAllEvents() |