Mercurial > wow > reaction
comparison classes/ActionButton.lua @ 124:0c5017f6062d
More fixes for new action button implementation
author | Flick <flickerstreak@gmail.com> |
---|---|
date | Tue, 03 Mar 2009 22:10:45 +0000 |
parents | 943eed2c7def |
children | 729232aeeb5e |
comparison
equal
deleted
inserted
replaced
123:943eed2c7def | 124:0c5017f6062d |
---|---|
69 ]] | 69 ]] |
70 | 70 |
71 local _childupdate_vehicleExit = -- function(self, snippetid, message) | 71 local _childupdate_vehicleExit = -- function(self, snippetid, message) |
72 [[ | 72 [[ |
73 local show = (mcVehicleState == "vehicle") | 73 local show = (mcVehicleState == "vehicle") |
74 if show then | 74 if show and doVehicle then |
75 self:SetAttribute("type","macro") | 75 self:SetAttribute("type","macro") |
76 self:SetAttribute("macrotext","/run VehicleExit()") | 76 self:SetAttribute("macrotext","/run VehicleExit()") |
77 self:Show() | 77 self:Show() |
78 else | 78 else |
79 self:SetAttribute("type","action") | 79 self:SetAttribute("type","action") |
155 ReAction.Button.Action = Action | 155 ReAction.Button.Action = Action |
156 | 156 |
157 function Action:New( idx, config, bar, idHint ) | 157 function Action:New( idx, config, bar, idHint ) |
158 local name = format("ReAction_%s_Action_%d",bar:GetName(),idx) | 158 local name = format("ReAction_%s_Action_%d",bar:GetName(),idx) |
159 | 159 |
160 self = Super.New(self, name, config, bar, idx, "ActionButtonTemplate, SecureActionButtonTemplate" ) | 160 self = Super.New(self, name, config, bar, idx, "SecureActionButtonTemplate, ActionButtonTemplate" ) |
161 | 161 |
162 local f = self:GetFrame() | 162 local f = self:GetFrame() |
163 local barFrame = bar:GetFrame() | 163 local barFrame = bar:GetFrame() |
164 | 164 |
165 local frames = { } | 165 local frames = { } |
179 self.rangeTimer = TOOLTIP_UPDATE_TIME | 179 self.rangeTimer = TOOLTIP_UPDATE_TIME |
180 | 180 |
181 -- set up the base action ID | 181 -- set up the base action ID |
182 self:SetActionIDPool("action",120) | 182 self:SetActionIDPool("action",120) |
183 config.actionID = self:AcquireActionID(config.actionID, idHint) | 183 config.actionID = self:AcquireActionID(config.actionID, idHint) |
184 self.actionID = config.actionID | |
185 self.nPages = 1 | 184 self.nPages = 1 |
186 | 185 |
187 -- attribute setup | 186 -- attribute setup |
188 f:SetAttribute("type","action") | 187 f:SetAttribute("type","action") |
189 f:SetAttribute("checkselfcast", true) | 188 f:SetAttribute("checkselfcast", true) |
208 -- secure handlers | 207 -- secure handlers |
209 f:SetAttribute("_childupate", _childupdate) | 208 f:SetAttribute("_childupate", _childupdate) |
210 f:SetAttribute("_childupdate-showgrid",_childupdate_showgrid) | 209 f:SetAttribute("_childupdate-showgrid",_childupdate_showgrid) |
211 barFrame:WrapScript(f, "OnDragStart", _onDragStart) | 210 barFrame:WrapScript(f, "OnDragStart", _onDragStart) |
212 barFrame:WrapScript(f, "OnReceiveDrag", _onReceiveDrag) | 211 barFrame:WrapScript(f, "OnReceiveDrag", _onReceiveDrag) |
213 if idx == 7 then | |
214 -- install vehicle-exit button on 7th button (only) | |
215 f:SetAttribute("_childupdate-vehicle", _childupdate_vehicleExit) | |
216 local button = self | |
217 function barFrame:ShowVehicleExit(show) | |
218 button:ShowVehicleExit(show) | |
219 end | |
220 end | |
221 | 212 |
222 -- event registration | 213 -- event registration |
214 f:EnableMouse(true) | |
223 f:RegisterForDrag("LeftButton", "RightButton") | 215 f:RegisterForDrag("LeftButton", "RightButton") |
224 f:RegisterForClicks("AnyUp") | 216 f:RegisterForClicks("AnyUp") |
225 for _, evt in pairs(eventList) do | 217 for _, evt in pairs(eventList) do |
226 f:RegisterEvent(evt) | 218 f:RegisterEvent(evt) |
227 end | 219 end |
260 end | 252 end |
261 | 253 |
262 function Action:Refresh() | 254 function Action:Refresh() |
263 self.bar:PlaceButton(self, 36, 36) | 255 self.bar:PlaceButton(self, 36, 36) |
264 self:RefreshPages() | 256 self:RefreshPages() |
257 self:InstallVehicle() | |
265 self:UpdateAction() | 258 self:UpdateAction() |
259 end | |
260 | |
261 function Action:InstallVehicle() | |
262 if self.idx == 7 and self.bar:GetConfig().vehicle then | |
263 -- install vehicle-exit button on 7th button (only) | |
264 f:SetAttribute("_childupdate-vehicle", _childupdate_vehicleExit) | |
265 barFrame.ShowVehicleExit = function(bar,show) | |
266 self:ShowVehicleExit(show) | |
267 end | |
268 else | |
269 f:SetAttribute("_childupdate-vehicle",nil) | |
270 end | |
266 end | 271 end |
267 | 272 |
268 function Action:UpdateAll() | 273 function Action:UpdateAll() |
269 self:UpdateActionIDLabel(ReAction:GetConfigMode()) | 274 self:UpdateActionIDLabel(ReAction:GetConfigMode()) |
270 self:UpdateHotkey() | 275 self:UpdateHotkey() |
565 | 570 |
566 | 571 |
567 function Action:ShowVehicleExit(show) | 572 function Action:ShowVehicleExit(show) |
568 local f = self:GetFrame() | 573 local f = self:GetFrame() |
569 local tx = f.vehicleExitTexture | 574 local tx = f.vehicleExitTexture |
570 if show then | 575 if show and self.bar:GetConfig().vehicle then |
571 if not tx then | 576 if not tx then |
572 tx = f:CreateTexture(nil,"ARTWORK") | 577 tx = f:CreateTexture(nil,"ARTWORK") |
573 tx:SetAllPoints() | 578 tx:SetAllPoints() |
574 -- copied from Blizzard/VehicleMenuBar.lua SkinsData | 579 -- copied from Blizzard/VehicleMenuBar.lua SkinsData |
575 tx:SetTexture("Interface\\Vehicles\\UI-Vehicles-Button-Exit-Up") | 580 tx:SetTexture("Interface\\Vehicles\\UI-Vehicles-Button-Exit-Up") |
649 end | 654 end |
650 | 655 |
651 function Action:ACTIONBAR_UPDATE_STATE() | 656 function Action:ACTIONBAR_UPDATE_STATE() |
652 self:UpdateCheckedState() | 657 self:UpdateCheckedState() |
653 end | 658 end |
654 Action.TRADE_SKILL_SHOW = Action.ACTIONBAR_UPDATE_STATE | 659 |
655 Action.TRADE_SKILL_CLOSE = Action.ACTIONBAR_UPDATE_STATE | 660 function Action:TRADE_SKILL_SHOW() |
661 self:UpdateCheckedState() | |
662 end | |
663 Action.TRADE_SKILL_CLOSE = Action.TRADE_SKILL_CLOSE | |
656 | 664 |
657 function Action:UNIT_ENTERED_VEHICLE(event,unit) | 665 function Action:UNIT_ENTERED_VEHICLE(event,unit) |
658 if unit == "player" then | 666 if unit == "player" then |
659 self:UpdateCheckedState() | 667 self:UpdateCheckedState() |
660 end | 668 end |