Mercurial > wow > skeletonkey
comparison HotKey.lua @ 72:c48913c5924c
- Dynamic bindings properly update between talent choices, and the hotkey text is also correctly reflected.
author | Nenue |
---|---|
date | Sat, 07 Jan 2017 12:47:41 -0500 |
parents | 131d9190db6b |
children |
comparison
equal
deleted
inserted
replaced
71:ca3118127e5e | 72:c48913c5924c |
---|---|
32 ["ACTIONBAR_PAGE_CHANGED"] = {"actionbar"}, | 32 ["ACTIONBAR_PAGE_CHANGED"] = {"actionbar"}, |
33 ["ACTIONBAR_SLOT_CHANGED"] = {"actionslot"}, | 33 ["ACTIONBAR_SLOT_CHANGED"] = {"actionslot"}, |
34 ["PLAYER_ENTERING_WORLD"] = {"world","all"}, | 34 ["PLAYER_ENTERING_WORLD"] = {"world","all"}, |
35 ["PET_UI_UPDATE"] = {"pet"}, | 35 ["PET_UI_UPDATE"] = {"pet"}, |
36 ["PLAYER_SPECIALIZATION_CHANGED"] = {"player"}, | 36 ["PLAYER_SPECIALIZATION_CHANGED"] = {"player"}, |
37 ["PLAYER_TALENTS_UPDATED"] = {"player"}, | |
38 } | 37 } |
39 | 38 |
40 | 39 |
41 function hotkey:wrapEvent (event, ...) | 40 function hotkey:wrapEvent (event, ...) |
42 self:RegisterEvent(event) | 41 self:RegisterEvent(event) |
89 function hotkey:OnLoad() | 88 function hotkey:OnLoad() |
90 hooksecurefunc("ActionBarButtonEventsFrame_RegisterFrame", hotkey.RegisterFrame) | 89 hooksecurefunc("ActionBarButtonEventsFrame_RegisterFrame", hotkey.RegisterFrame) |
91 | 90 |
92 end | 91 end |
93 | 92 |
93 | |
94 function hotkey:Update() | 94 function hotkey:Update() |
95 print('--|cFF00FF00ui|r') | 95 print('--|cFF00FF00ui|r') |
96 self:player() | 96 self:player() |
97 hotkey:pet() | 97 hotkey:pet() |
98 hotkey:binding() | 98 hotkey:binding() |
99 end | 99 kb.UpdateHotKeys = function() self:Update() end |
100 | 100 end |
101 | 101 |
102 function hotkey:world() | 102 function hotkey:world() |
103 print('--|cFF00FF00world|r') | 103 print('--|cFF00FF00world|r') |
104 -- needs to be delayed so it isn't fired 50 times at login | 104 -- needs to be delayed so it isn't fired 50 times at login |
105 if not hotkeyEvents["UPDATE_BINDINGS"] then | 105 if not hotkeyEvents["UPDATE_BINDINGS"] then |
113 end | 113 end |
114 | 114 |
115 -- requires all these arguments since non-actionbar buttons don't have all of said methods | 115 -- requires all these arguments since non-actionbar buttons don't have all of said methods |
116 local kprint = (DEVIAN_WORKSPACE and function(...) _G.print('HotKeyUpdate', ...) end) or function() end | 116 local kprint = (DEVIAN_WORKSPACE and function(...) _G.print('HotKeyUpdate', ...) end) or function() end |
117 function hotkey:UpdateHotKey(frame, actionType, actionID, hasAction) | 117 function hotkey:UpdateHotKey(frame, actionType, actionID, hasAction) |
118 bindings = kb.GetBindings() | 118 |
119 | 119 |
120 if hasAction then | 120 if hasAction then |
121 local indexKey = kb.FormatActionID(actionType, actionID) | 121 local indexKey = kb.FormatActionID(actionType, actionID) |
122 | 122 |
123 | 123 |
132 elseif actionType == 'item' then | 132 elseif actionType == 'item' then |
133 actionName = GetItemInfo(actionID) | 133 actionName = GetItemInfo(actionID) |
134 end | 134 end |
135 kprint(' actionKey:', indexKey) | 135 kprint(' actionKey:', indexKey) |
136 | 136 |
137 local binds = bindings[indexKey] | 137 local binds = kb.bindings[indexKey] |
138 if binds and (not frame.HotKey:IsVisible()) then | 138 if binds and (not frame.HotKey:IsVisible()) then |
139 kprint(frame:GetName(), '|cFF88FF00'..indexKey..'|r', hasAction, actionName) | 139 kprint(frame:GetName(), '|cFF88FF00'..indexKey..'|r', hasAction, actionName) |
140 local bindingsText = kb.BindingString(unpack(binds)) | 140 local bindingsText = kb.BindingString(unpack(binds)) |
141 | 141 |
142 if not hotkeyText[frame] then | 142 if not hotkeyText[frame] then |