comparison SkeletonKey/BindingsUI.lua @ 16:cdd387d39137

filename refactor
author Nenue
date Fri, 29 Jul 2016 21:18:15 -0400
parents 32d64e42ec9b
children 500f9b2bd9ac
comparison
equal deleted inserted replaced
15:32d64e42ec9b 16:cdd387d39137
1 -- KrakTool 1 -- KrakTool
2 -- BindingsUI.lua 2 -- BindingsUI.lua
3 -- Created: 7/28/2016 3:39 PM 3 -- Created: 7/28/2016 3:39 PM
4 -- %file-revision% 4 -- %file-revision%
5 -- 5 -- Code piecing the interface together
6 6
7 local kb, print = LibStub("LibKraken").register(KeyBinder, 'KeySlot') 7 local kb, print = LibStub("LibKraken").register(KeyBinder, 'KeySlot')
8 local BINDS_PER_ROW = 2 8 local BINDS_PER_ROW = 2
9 local BUTTON_HSPACING = 128 9 local BUTTON_HSPACING = 128
10 local BUTTON_SPACING = 4 10 local BUTTON_SPACING = 4
36 36
37 local restingAlpha = 0.7 37 local restingAlpha = 0.7
38 local fadeTime, fadeDelay = .30, 0.15 38 local fadeTime, fadeDelay = .30, 0.15
39 local numButtons = BINDS_PER_ROW * 8 39 local numButtons = BINDS_PER_ROW * 8
40 local saveButton 40 local saveButton
41 local KeyButton_OnKeyDown = function(self, key) 41 local KeyButton_OnKey = function(self, key)
42 kb.StoreBinding(self, key) 42 kb.StoreBinding(self.saveTarget, key)
43 end 43 kb:SetScript('OnKeyUp', nil)
44 kb:SetScript('OnKeyDown', nil)
45 end
46
44 local KeyButton_OnClick = function(self, click) 47 local KeyButton_OnClick = function(self, click)
45 print(self:GetName(), 'OnMouseDown', click) 48 print(self:GetName(), 'OnMouseDown', click)
49 local cursorType = GetCursorInfo()
46 if click == 'LeftButton' then 50 if click == 'LeftButton' then
47 kb.DropToSlot(self) 51 if cursorType then
52 kb.DropToSlot(self)
53 else
54 kb.ActivateSlot(self)
55 end
48 elseif click == 'RightButton' then 56 elseif click == 'RightButton' then
49 kb.ReleaseSlot(self) 57 kb.ReleaseSlot(self)
50 else
51 kb.StoreBinding(self, click:upper())
52 end 58 end
53 end 59 end
54 60
55 local KeyButton_OnDragStart = function(self) 61 local KeyButton_OnDragStart = function(self)
56 kb.PickupSlot(self) 62 kb.PickupSlot(self)
101 if self:IsMouseOver() then 107 if self:IsMouseOver() then
102 kb.elapsed = 0 108 kb.elapsed = 0
103 if not self.active then 109 if not self.active then
104 -- only set this handler when the button is activated/mouseOver 110 -- only set this handler when the button is activated/mouseOver
105 self.active = true 111 self.active = true
106 self:SetScript('OnKeyDown', KeyButton_OnKeyDown)
107
108 kb.statustext:SetText(self.statusText .. ': '..self.actionName) 112 kb.statustext:SetText(self.statusText .. ': '..self.actionName)
109 kb.bindingstext:SetText(self.bindingText) 113 kb.bindingstext:SetText(self.bindingText)
110 kb.fadeStep = 0 114 kb.fadeStep = 0
111 kb.throttle = 0 115 kb.throttle = 0
112 kb:SetScript('OnUpdate', KeyBinder_OnUpdate) 116 kb:SetScript('OnUpdate', KeyBinder_OnUpdate)
258 end 262 end
259 return kb.buttons[index] 263 return kb.buttons[index]
260 end 264 end
261 end 265 end
262 266
267
268 kb.ActivateSlot = function(self)
269 kb.saveTarget = self
270 kb:SetScript('OnKeyUp', KeyButton_OnKey)
271 kb.bg:SetColorTexture(0,.5,0,1)
272 end
263 273
264 --- push current information into living UI 274 --- push current information into living UI
265 kb.ui = function(force) 275 kb.ui = function(force)
266 for i, module in ipairs(kb.modules) do 276 for i, module in ipairs(kb.modules) do
267 if module.ui then 277 if module.ui then