comparison SkeletonKey/BindingsUI.lua @ 18:91398d284a99

- stickyMode and hoverInput togglers with tooltips - remove keybinds via an interface button - turn off key input when receiving GAMEMENU key - ignore modifier keys - mask out key selections that are bound to core interface functions (todo: selectively free up combinations involving 1-6, F1-F12, etc.)
author Nenue
date Sat, 30 Jul 2016 03:33:09 -0400
parents 500f9b2bd9ac
children 67db6b712bf3
comparison
equal deleted inserted replaced
17:500f9b2bd9ac 18:91398d284a99
136 kb.bindingstext:SetText(self.bindingText) 136 kb.bindingstext:SetText(self.bindingText)
137 kb.fadeStep = 0 137 kb.fadeStep = 0
138 kb.throttle = 0 138 kb.throttle = 0
139 kb:SetScript('OnUpdate', KeyBinder_OnUpdate) 139 kb:SetScript('OnUpdate', KeyBinder_OnUpdate)
140 140
141 if kb.db.hoverInput and kb.saveTarget ~= self then
142 kb.ActivateSlot(self)
143 kb.ui()
144 end
145
141 end 146 end
142 else 147 else
143 if self.active then 148 if self.active then
144 self.active = nil 149 self.active = nil
150 kb.DeactivateSlot(self)
151 kb.ui()
145 end 152 end
146 end 153 end
147 end 154 end
148 155
149 local KeyBinder_OnMouseWheel = function(self, delta) 156 local KeyBinder_OnMouseWheel = function(self, delta)
166 for i = 1, #kb.buttons do 173 for i = 1, #kb.buttons do
167 kb.buttons[i]:SetSize(KEY_BUTTON_SIZE,KEY_BUTTON_SIZE) 174 kb.buttons[i]:SetSize(KEY_BUTTON_SIZE,KEY_BUTTON_SIZE)
168 end 175 end
169 176
170 kb.ui(true) 177 kb.ui(true)
178 end
179
180 local CheckButton_OnEnter = function(self)
181 if self.tooltip then
182 GameTooltip:SetOwner(self)
183 GameTooltip:SetText(self.tooltip)
184 GameTooltip:Show()
185 end
186 end
187 local CheckButton_OnLeave = function(self)
188 if self.tooltip and GameTooltip:GetOwner() == self then
189 GameTooltip:Hide()
190 end
191
171 end 192 end
172 193
173 local KeyBinder_OnHide = function() 194 local KeyBinder_OnHide = function()
174 KeyBinderImportLog:Hide() 195 KeyBinderImportLog:Hide()
175 end 196 end
269 kb:uibutton( 290 kb:uibutton(
270 'KeyBinderInventoryButton', 'Bags', nil, 291 'KeyBinderInventoryButton', 'Bags', nil,
271 function() OpenAllBags() end, 292 function() OpenAllBags() end,
272 "Interface\\BUTTONS\\UI-MicroButtonCharacter-Up", {0, 1, .4, 1}) 293 "Interface\\BUTTONS\\UI-MicroButtonCharacter-Up", {0, 1, .4, 1})
273 294
295 KeyBinderStickyMode.tooltip = 'Keep input active after receiving a key.'
274 KeyBinderStickyMode:SetScript('OnClick', function(self) 296 KeyBinderStickyMode:SetScript('OnClick', function(self)
275 297 kb.db.stickyMode = self:GetChecked()
276 kb.stickyMode = self:GetChecked() 298 if not kb.db.stickyMode then
277 if not kb.stickyMode then
278 if kb.saveTarget then 299 if kb.saveTarget then
279 kb.DeactivateSlot(kb.saveTarget) 300 kb.DeactivateSlot(kb.saveTarget)
280 end 301 end
281 end 302 end
282
283 kb.ui() 303 kb.ui()
284 end) 304 end)
305 if kb.db.stickyMode then
306 KeyBinderStickyMode:SetChecked(true)
307 end
308
309 KeyBinderHoverInput.tooltip = 'Enable key input when the cursor is over a binding slot.'
310 KeyBinderHoverInput:SetScript('OnClick', function(self)
311 kb.db.hoverInput = self:GetChecked()
312 kb.ui()
313 end)
314 if kb.db.hoverInput then
315 KeyBinderHoverInput:SetChecked(true)
316 end
317
318
319 KeyBinderUnbindButton:SetScript('OnClick', function()
320 if kb.saveTarget then
321 kb.UnbindSlot(kb.saveTarget)
322 end
323 kb.ui()
324 end)
325
326 KeyBinderStickyMode:SetScript('OnEnter', CheckButton_OnEnter)
327 KeyBinderHoverInput:SetScript('OnEnter', CheckButton_OnEnter)
328 KeyBinderStickyMode:SetScript('OnLeave', CheckButton_OnLeave)
329 KeyBinderHoverInput:SetScript('OnLeave', CheckButton_OnLeave)
285 330
286 kb.info:SetPoint('TOPLEFT', kb.UIPanels[1], 'BOTTOMLEFT', 0, -BUTTON_SPACING) 331 kb.info:SetPoint('TOPLEFT', kb.UIPanels[1], 'BOTTOMLEFT', 0, -BUTTON_SPACING)
287 HEADER_OFFSET = kb.UIPanels[1]:GetHeight() + BUTTON_PADDING 332 HEADER_OFFSET = kb.UIPanels[1]:GetHeight() + BUTTON_PADDING
288 + kb.info:GetHeight() 333 + kb.info:GetHeight()
289 FOOTER_OFFSET = saveButton:GetHeight() + BUTTON_PADDING 334 FOOTER_OFFSET = saveButton:GetHeight() + BUTTON_PADDING
393 KeyBinderUnbindButton:Show() 438 KeyBinderUnbindButton:Show()
394 else 439 else
395 KeyBinderUnbindButton:Hide() 440 KeyBinderUnbindButton:Hide()
396 end 441 end
397 442
443 KeyBinderStickyMode.label:SetText(kb.db.stickyMode and 'Sticky' or 'Normal')
444 KeyBinderHoverInput.label:SetText(kb.db.hoverInput and 'MouseOver' or 'Manual')
398 445
399 -- Reset this so talent cache can be rebuilt 446 -- Reset this so talent cache can be rebuilt
400 kb.talentsPushed = nil 447 kb.talentsPushed = nil
401 end 448 end
402 449