Mercurial > wow > askmrrobot
comparison Libs/AceGUI-3.0/widgets/AceGUIWidget-Keybinding.lua @ 106:e635cd648e01 v49
7.2 update
author | yellowfive |
---|---|
date | Tue, 28 Mar 2017 16:10:00 -0700 |
parents | 01b63b8ed811 |
children |
comparison
equal
deleted
inserted
replaced
105:3ce266c86bd3 | 106:e635cd648e01 |
---|---|
1 --[[----------------------------------------------------------------------------- | 1 --[[----------------------------------------------------------------------------- |
2 Keybinding Widget | 2 Keybinding Widget |
3 Set Keybindings in the Config UI. | 3 Set Keybindings in the Config UI. |
4 -------------------------------------------------------------------------------]] | 4 -------------------------------------------------------------------------------]] |
5 local Type, Version = "Keybinding", 24 | 5 local Type, Version = "Keybinding", 25 |
6 local AceGUI = LibStub and LibStub("AceGUI-3.0", true) | 6 local AceGUI = LibStub and LibStub("AceGUI-3.0", true) |
7 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end | 7 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end |
8 | 8 |
9 -- Lua APIs | 9 -- Lua APIs |
10 local pairs = pairs | 10 local pairs = pairs |
14 local CreateFrame, UIParent = CreateFrame, UIParent | 14 local CreateFrame, UIParent = CreateFrame, UIParent |
15 | 15 |
16 -- Global vars/functions that we don't upvalue since they might get hooked, or upgraded | 16 -- Global vars/functions that we don't upvalue since they might get hooked, or upgraded |
17 -- List them here for Mikk's FindGlobals script | 17 -- List them here for Mikk's FindGlobals script |
18 -- GLOBALS: NOT_BOUND | 18 -- GLOBALS: NOT_BOUND |
19 | |
20 local wowMoP | |
21 do | |
22 local _, _, _, interface = GetBuildInfo() | |
23 wowMoP = (interface >= 50000) | |
24 end | |
25 | 19 |
26 --[[----------------------------------------------------------------------------- | 20 --[[----------------------------------------------------------------------------- |
27 Scripts | 21 Scripts |
28 -------------------------------------------------------------------------------]] | 22 -------------------------------------------------------------------------------]] |
29 | 23 |
38 local function Keybinding_OnClick(frame, button) | 32 local function Keybinding_OnClick(frame, button) |
39 if button == "LeftButton" or button == "RightButton" then | 33 if button == "LeftButton" or button == "RightButton" then |
40 local self = frame.obj | 34 local self = frame.obj |
41 if self.waitingForKey then | 35 if self.waitingForKey then |
42 frame:EnableKeyboard(false) | 36 frame:EnableKeyboard(false) |
37 frame:EnableMouseWheel(false) | |
43 self.msgframe:Hide() | 38 self.msgframe:Hide() |
44 frame:UnlockHighlight() | 39 frame:UnlockHighlight() |
45 self.waitingForKey = nil | 40 self.waitingForKey = nil |
46 else | 41 else |
47 frame:EnableKeyboard(true) | 42 frame:EnableKeyboard(true) |
43 frame:EnableMouseWheel(true) | |
48 self.msgframe:Show() | 44 self.msgframe:Show() |
49 frame:LockHighlight() | 45 frame:LockHighlight() |
50 self.waitingForKey = true | 46 self.waitingForKey = true |
51 end | 47 end |
52 end | 48 end |
77 keyPressed = "ALT-"..keyPressed | 73 keyPressed = "ALT-"..keyPressed |
78 end | 74 end |
79 end | 75 end |
80 | 76 |
81 frame:EnableKeyboard(false) | 77 frame:EnableKeyboard(false) |
78 frame:EnableMouseWheel(false) | |
82 self.msgframe:Hide() | 79 self.msgframe:Hide() |
83 frame:UnlockHighlight() | 80 frame:UnlockHighlight() |
84 self.waitingForKey = nil | 81 self.waitingForKey = nil |
85 | 82 |
86 if not self.disabled then | 83 if not self.disabled then |
101 button = "BUTTON5" | 98 button = "BUTTON5" |
102 end | 99 end |
103 Keybinding_OnKeyDown(frame, button) | 100 Keybinding_OnKeyDown(frame, button) |
104 end | 101 end |
105 | 102 |
103 local function Keybinding_OnMouseWheel(frame, direction) | |
104 local button | |
105 if direction >= 0 then | |
106 button = "MOUSEWHEELUP" | |
107 else | |
108 button = "MOUSEWHEELDOWN" | |
109 end | |
110 Keybinding_OnKeyDown(frame, button) | |
111 end | |
112 | |
106 --[[----------------------------------------------------------------------------- | 113 --[[----------------------------------------------------------------------------- |
107 Methods | 114 Methods |
108 -------------------------------------------------------------------------------]] | 115 -------------------------------------------------------------------------------]] |
109 local methods = { | 116 local methods = { |
110 ["OnAcquire"] = function(self) | 117 ["OnAcquire"] = function(self) |
113 self:SetKey("") | 120 self:SetKey("") |
114 self.waitingForKey = nil | 121 self.waitingForKey = nil |
115 self.msgframe:Hide() | 122 self.msgframe:Hide() |
116 self:SetDisabled(false) | 123 self:SetDisabled(false) |
117 self.button:EnableKeyboard(false) | 124 self.button:EnableKeyboard(false) |
125 self.button:EnableMouseWheel(false) | |
118 end, | 126 end, |
119 | 127 |
120 -- ["OnRelease"] = nil, | 128 -- ["OnRelease"] = nil, |
121 | 129 |
122 ["SetDisabled"] = function(self, disabled) | 130 ["SetDisabled"] = function(self, disabled) |
178 | 186 |
179 local function Constructor() | 187 local function Constructor() |
180 local name = "AceGUI30KeybindingButton" .. AceGUI:GetNextWidgetNum(Type) | 188 local name = "AceGUI30KeybindingButton" .. AceGUI:GetNextWidgetNum(Type) |
181 | 189 |
182 local frame = CreateFrame("Frame", nil, UIParent) | 190 local frame = CreateFrame("Frame", nil, UIParent) |
183 local button = CreateFrame("Button", name, frame, wowMoP and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2") | 191 local button = CreateFrame("Button", name, frame, "UIPanelButtonTemplate") |
184 | 192 |
185 button:EnableMouse(true) | 193 button:EnableMouse(true) |
194 button:EnableMouseWheel(false) | |
186 button:RegisterForClicks("AnyDown") | 195 button:RegisterForClicks("AnyDown") |
187 button:SetScript("OnEnter", Control_OnEnter) | 196 button:SetScript("OnEnter", Control_OnEnter) |
188 button:SetScript("OnLeave", Control_OnLeave) | 197 button:SetScript("OnLeave", Control_OnLeave) |
189 button:SetScript("OnClick", Keybinding_OnClick) | 198 button:SetScript("OnClick", Keybinding_OnClick) |
190 button:SetScript("OnKeyDown", Keybinding_OnKeyDown) | 199 button:SetScript("OnKeyDown", Keybinding_OnKeyDown) |
191 button:SetScript("OnMouseDown", Keybinding_OnMouseDown) | 200 button:SetScript("OnMouseDown", Keybinding_OnMouseDown) |
201 button:SetScript("OnMouseWheel", Keybinding_OnMouseWheel) | |
192 button:SetPoint("BOTTOMLEFT") | 202 button:SetPoint("BOTTOMLEFT") |
193 button:SetPoint("BOTTOMRIGHT") | 203 button:SetPoint("BOTTOMRIGHT") |
194 button:SetHeight(24) | 204 button:SetHeight(24) |
195 button:EnableKeyboard(false) | 205 button:EnableKeyboard(false) |
196 | 206 |