comparison classes/StanceButton.lua @ 137:4c1b85ec40d2

Hotkey support for stance bar
author Flick <flickerstreak@gmail.com>
date Wed, 18 Mar 2009 02:22:24 +0000
parents b8a14165b807
children 0de0e64a970f
comparison
equal deleted inserted replaced
136:b8a14165b807 137:4c1b85ec40d2
38 "PLAYER_ENTERING_WORLD", 38 "PLAYER_ENTERING_WORLD",
39 "UPDATE_SHAPESHIFT_FORM", 39 "UPDATE_SHAPESHIFT_FORM",
40 "UPDATE_SHAPESHIFT_FORMS", 40 "UPDATE_SHAPESHIFT_FORMS",
41 "UPDATE_SHAPESHIFT_USABLE", 41 "UPDATE_SHAPESHIFT_USABLE",
42 "UPDATE_SHAPESHIFT_COOLDOWN", 42 "UPDATE_SHAPESHIFT_COOLDOWN",
43 -- "UPDATE_INVENTORY_ALERTS" -- WTF? 43 "UPDATE_BINDINGS",
44 } 44 }
45 45
46 local eventListHunter = { 46 local eventListHunter = {
47 "PLAYER_REGEN_ENABLED", 47 "PLAYER_REGEN_ENABLED",
48 "PLAYER_ENTERING_WORLD", 48 "PLAYER_ENTERING_WORLD",
49 "SPELL_UPDATE_COOLDOWN", 49 "SPELL_UPDATE_COOLDOWN",
50 "SPELL_UPDATE_USABLE", 50 "SPELL_UPDATE_USABLE",
51 "UNIT_AURA", 51 "UNIT_AURA",
52 "SPELLS_CHANGED" 52 "SPELLS_CHANGED",
53 "UPDATE_BINDINGS",
53 } 54 }
54 55
55 if playerClass == "HUNTER" then 56 if playerClass == "HUNTER" then
56 eventList = eventListHunter 57 eventList = eventListHunter
57 end 58 end
78 self:SetActionIDPool("stance",8) 79 self:SetActionIDPool("stance",8)
79 config.stanceID = self:AcquireActionID(config.stanceID, idHint, true) 80 config.stanceID = self:AcquireActionID(config.stanceID, idHint, true)
80 81
81 -- attribute setup 82 -- attribute setup
82 f:SetAttribute("type","spell") 83 f:SetAttribute("type","spell")
83 self:UpdateAction()
84 84
85 -- non secure scripts 85 -- non secure scripts
86 f:SetScript("OnEvent", function(frame, ...) self:OnEvent(...) end) 86 f:SetScript("OnEvent", function(frame, ...) self:OnEvent(...) end)
87 f:SetScript("OnEnter", function(frame) self:OnEnter() end) 87 f:SetScript("OnEnter", function(frame) self:OnEnter() end)
88 f:SetScript("OnLeave", function(frame) self:OnLeave() end) 88 f:SetScript("OnLeave", function(frame) self:OnLeave() end)
171 end 171 end
172 end 172 end
173 173
174 function Stance:Refresh() 174 function Stance:Refresh()
175 Super.Refresh(self) 175 Super.Refresh(self)
176 self:UpdateHotkey()
176 self:UpdateAction() 177 self:UpdateAction()
177 end 178 end
178 179
179 function Stance:Update() 180 function Stance:Update()
180 local texture, isActive, isCastable 181 local texture, isActive, isCastable
199 200
200 local icon = self.frames.icon 201 local icon = self.frames.icon
201 icon:SetTexture(texture) 202 icon:SetTexture(texture)
202 self:GetFrame():SetChecked( isActive and 1 or 0 ) 203 self:GetFrame():SetChecked( isActive and 1 or 0 )
203 if isCastable then 204 if isCastable then
205 self.frames.hotkey:SetVertexColor(1.0,1.0,1.0,1.0)
206 self.frames.hotkey:Show()
204 icon:SetVertexColor(1.0, 1.0, 1.0) 207 icon:SetVertexColor(1.0, 1.0, 1.0)
205 else 208 else
209 self.frames.hotkey:SetVertexColor(0.6,0.6,0.6,1.0)
206 icon:SetVertexColor(0.4, 0.4, 0.4) 210 icon:SetVertexColor(0.4, 0.4, 0.4)
207 end 211 end
208 212
209 self:UpdateCooldown() 213 self:UpdateCooldown()
210 end 214 end
266 self:UpdateAction() 270 self:UpdateAction()
267 elseif event == "UNIT_AURA" then 271 elseif event == "UNIT_AURA" then
268 if arg == "player" then 272 if arg == "player" then
269 self:Update() 273 self:Update()
270 end 274 end
275 elseif event == "UPDATE_BINDINGS" then
276 self:UpdateHotkey()
271 else 277 else
272 self:Update() 278 self:Update()
273 end 279 end
274 end 280 end
275 281