comparison classes/ReAction.lua @ 10:f3a7bfebc283

Version 0.33
author Flick <flickerstreak@gmail.com>
date Tue, 20 Mar 2007 21:37:38 +0000
parents c05fd3e18b4f
children 90bf38d48efd
comparison
equal deleted inserted replaced
9:650f75d08952 10:f3a7bfebc283
4 -- It does not define any layout or actual action functionality, 4 -- It does not define any layout or actual action functionality,
5 -- which is deferred to derived classes. 5 -- which is deferred to derived classes.
6 -- 6 --
7 -- ReAction implements the ReBar.IButton interface. It is designed to be used with ReBar 7 -- ReAction implements the ReBar.IButton interface. It is designed to be used with ReBar
8 -- for grouping and laying out buttons. 8 -- for grouping and laying out buttons.
9 --
10 -- ReAction supports the ReBound keybinding interface (only).
11 -- 9 --
12 -- Each instance of a ReAction-derived object is associated with a single action 10 -- Each instance of a ReAction-derived object is associated with a single action
13 -- button frame, which may or may not have a one-to-one mapping with actionID. 11 -- button frame, which may or may not have a one-to-one mapping with actionID.
14 -- 12 --
15 -- ReAction makes use of a configuration structure, which can (and should) be 13 -- ReAction makes use of a configuration structure, which can (and should) be
75 UpdateDisplay = "function", -- UpdateDisplay(), general display state should be refreshed 73 UpdateDisplay = "function", -- UpdateDisplay(), general display state should be refreshed
76 TempShow = "function", -- TempShow(visible), calls to this can be nested so keep track. 74 TempShow = "function", -- TempShow(visible), calls to this can be nested so keep track.
77 GetActionFrame = "function", -- f = GetActionFrame(), return a frame derived from SecureActionButtonTemplate (note: this is inherited unimplemented from ReBar.IButton) 75 GetActionFrame = "function", -- f = GetActionFrame(), return a frame derived from SecureActionButtonTemplate (note: this is inherited unimplemented from ReBar.IButton)
78 GetBaseButtonSize = "function", -- sz = GetBaseButtonSize(), return size in pixels of the nominal button (square) 76 GetBaseButtonSize = "function", -- sz = GetBaseButtonSize(), return size in pixels of the nominal button (square)
79 DisplayID = "function", -- DisplayID(show), true/false to show/hide the action ID (or equivalent) 77 DisplayID = "function", -- DisplayID(show), true/false to show/hide the action ID (or equivalent)
80 DisplayHotkey = "function", -- DisplayHotkey(keyText), set the hotkey display text 78 DisplayHotkey = "function", -- DisplayHotkey(keyText, button), set the hotkey display text. 2nd argument specifies which button the hotkey is for, default is "LeftButton".
81 } 79 }
82 80
83 81
84 ---------------------------- 82 ----------------------------
85 -- ReAction class definition 83 -- ReAction class definition
290 end 288 end
291 289
292 -- Event handlers 290 -- Event handlers
293 291
294 function ReAction.prototype:UPDATE_BINDINGS() 292 function ReAction.prototype:UPDATE_BINDINGS()
295 self:DisplayHotkey(self:GetKeyBindingText(nil, true)) 293 self:DisplayHotkey(self:GetKeyBindingText("LeftButton", true),"LeftButton")
294 self:DisplayHotkey(self:GetKeyBindingText("RightButton",true),"RightButton")
296 end 295 end
297 296
298 297
299 -- Internal functions 298 -- Internal functions
300 299
301 function ReAction.prototype:Recycle() 300 function ReAction.prototype:Recycle()
302 --self:SetKeyBinding(nil) -- TODO: only if we're using override bindings
303 self:UnregisterAllEvents() 301 self:UnregisterAllEvents()
304 302
305 -- tuck the frame away 303 -- tuck the frame away
306 local b = self:GetActionFrame() 304 local b = self:GetActionFrame()
307 b:SetParent(ReAction.recycler) 305 b:SetParent(ReAction.recycler)
327 end 325 end
328 326
329 function ReAction.prototype:SetKeyBinding( k, mouseBtn ) 327 function ReAction.prototype:SetKeyBinding( k, mouseBtn )
330 if k == nil or kbValidate(k) then 328 if k == nil or kbValidate(k) then
331 local current = self:GetKeyBinding(mouseBtn) 329 local current = self:GetKeyBinding(mouseBtn)
332 -- !!!TODO: do we need this?
333 -- ClearOverrideBindings(self:GetActionFrame())
334 if current then 330 if current then
335 SetBinding(current,nil) 331 SetBinding(current,nil)
336 end 332 end
337 if k then 333 if k then
338 -- TODO: use OverrideBinding and store the keybinding in the profile.
339 SetBindingClick(k, self:GetActionFrame():GetName(), mouseBtn or "LeftButton") 334 SetBindingClick(k, self:GetActionFrame():GetName(), mouseBtn or "LeftButton")
340 end 335 end
341 end 336 end
342 end 337 end
343 338