Mercurial > wow > skeletonkey
diff 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 |
line wrap: on
line diff
--- a/SkeletonKey/BindingsUI.lua Sat Jul 30 00:08:00 2016 -0400 +++ b/SkeletonKey/BindingsUI.lua Sat Jul 30 03:33:09 2016 -0400 @@ -138,10 +138,17 @@ kb.throttle = 0 kb:SetScript('OnUpdate', KeyBinder_OnUpdate) + if kb.db.hoverInput and kb.saveTarget ~= self then + kb.ActivateSlot(self) + kb.ui() + end + end else if self.active then self.active = nil + kb.DeactivateSlot(self) + kb.ui() end end end @@ -170,6 +177,20 @@ kb.ui(true) end +local CheckButton_OnEnter = function(self) + if self.tooltip then + GameTooltip:SetOwner(self) + GameTooltip:SetText(self.tooltip) + GameTooltip:Show() + end +end +local CheckButton_OnLeave = function(self) + if self.tooltip and GameTooltip:GetOwner() == self then + GameTooltip:Hide() + end + +end + local KeyBinder_OnHide = function() KeyBinderImportLog:Hide() end @@ -271,17 +292,41 @@ function() OpenAllBags() end, "Interface\\BUTTONS\\UI-MicroButtonCharacter-Up", {0, 1, .4, 1}) + KeyBinderStickyMode.tooltip = 'Keep input active after receiving a key.' KeyBinderStickyMode:SetScript('OnClick', function(self) - - kb.stickyMode = self:GetChecked() - if not kb.stickyMode then + kb.db.stickyMode = self:GetChecked() + if not kb.db.stickyMode then if kb.saveTarget then kb.DeactivateSlot(kb.saveTarget) end end - kb.ui() end) + if kb.db.stickyMode then + KeyBinderStickyMode:SetChecked(true) + end + + KeyBinderHoverInput.tooltip = 'Enable key input when the cursor is over a binding slot.' + KeyBinderHoverInput:SetScript('OnClick', function(self) + kb.db.hoverInput = self:GetChecked() + kb.ui() + end) + if kb.db.hoverInput then + KeyBinderHoverInput:SetChecked(true) + end + + + KeyBinderUnbindButton:SetScript('OnClick', function() + if kb.saveTarget then + kb.UnbindSlot(kb.saveTarget) + end + kb.ui() + end) + + KeyBinderStickyMode:SetScript('OnEnter', CheckButton_OnEnter) + KeyBinderHoverInput:SetScript('OnEnter', CheckButton_OnEnter) + KeyBinderStickyMode:SetScript('OnLeave', CheckButton_OnLeave) + KeyBinderHoverInput:SetScript('OnLeave', CheckButton_OnLeave) kb.info:SetPoint('TOPLEFT', kb.UIPanels[1], 'BOTTOMLEFT', 0, -BUTTON_SPACING) HEADER_OFFSET = kb.UIPanels[1]:GetHeight() + BUTTON_PADDING @@ -395,6 +440,8 @@ KeyBinderUnbindButton:Hide() end + KeyBinderStickyMode.label:SetText(kb.db.stickyMode and 'Sticky' or 'Normal') + KeyBinderHoverInput.label:SetText(kb.db.hoverInput and 'MouseOver' or 'Manual') -- Reset this so talent cache can be rebuilt kb.talentsPushed = nil