comparison classes/Bar.lua @ 156:611e6ce08717

Use state-unitexists for unitwatch
author Flick <flickerstreak@gmail.com>
date Mon, 18 May 2009 23:08:34 +0000
parents 806a61b331a0
children e77f716af1b7
comparison
equal deleted inserted replaced
155:806a61b331a0 156:611e6ce08717
16 anchorKeys = newtable("point","relPoint","x","y") 16 anchorKeys = newtable("point","relPoint","x","y")
17 17
18 state = nil 18 state = nil
19 set_state = nil 19 set_state = nil
20 state_override = nil 20 state_override = nil
21 unit_exists = nil
21 22
22 showAll = false 23 showAll = false
23 hidden = false 24 hidden = false
24 25
25 defaultAlpha = 1.0 26 defaultAlpha = 1.0
34 local _reaction_refresh = 35 local _reaction_refresh =
35 [[ 36 [[
36 local oldState = state 37 local oldState = state
37 state = state_override or set_state or state 38 state = state_override or set_state or state
38 39
40 local hide = nil
39 if state then 41 if state then
40 local settings = settings[state] 42 local settings = settings[state]
41 if settings then 43 if settings then
42 -- show/hide 44 -- show/hide
43 local h = settings.hide and not showAll 45 hide = settings.hide
44 if h ~= hidden then
45 if h then
46 self:Hide()
47 else
48 self:Show()
49 end
50 hidden = h
51 end
52 -- re-anchor 46 -- re-anchor
53 local old_anchor = activeStates.anchor 47 local old_anchor = activeStates.anchor
54 activeStates.anchor = settings.anchorEnable and state 48 activeStates.anchor = settings.anchorEnable and state
55 if old_anchor ~= activeStates.anchor or not set_state then 49 if old_anchor ~= activeStates.anchor or not set_state then
56 if activeStates.anchor then 50 if activeStates.anchor then
80 self:SetAlpha(activeStates.alpha and settings.alpha or defaultAlpha) 74 self:SetAlpha(activeStates.alpha and settings.alpha or defaultAlpha)
81 end 75 end
82 end 76 end
83 end 77 end
84 78
79 -- hide if state or unit_exists says to
80 hide = not showAll and (hide or unithide)
81 if hide ~= hidden then
82 hidden = hide
83 if hide then
84 self:Hide()
85 else
86 self:Show()
87 end
88 end
89
85 for _, attr in pairs(extensions) do 90 for _, attr in pairs(extensions) do
86 control:RunAttribute(attr) 91 control:RunAttribute(attr)
87 end 92 end
88 93
89 control:ChildUpdate() 94 control:ChildUpdate()
108 control:CallMethod("UpdateShowGrid") 113 control:CallMethod("UpdateShowGrid")
109 ]] 114 ]]
110 115
111 local _onstate_unitexists = -- function( self, stateid, newstate ) 116 local _onstate_unitexists = -- function( self, stateid, newstate )
112 [[ 117 [[
113 118 unithide = not newstate
114 ]] .. _reaction_refresh 119 ]] .. _reaction_refresh
115 120
116 local _onclick = -- function( self, button, down ) 121 local _onclick = -- function( self, button, down )
117 [[ 122 [[
118 if state_override == button then 123 if state_override == button then
341 -- Methods 346 -- Methods
342 -- 347 --
343 348
344 function Bar:SetConfigMode(mode) 349 function Bar:SetConfigMode(mode)
345 self:SetSecureData("showAll",mode) 350 self:SetSecureData("showAll",mode)
346 self:UpdateUnitWatch()
347 self:ShowControls(mode) 351 self:ShowControls(mode)
348 for b in self:IterateButtons() do 352 for b in self:IterateButtons() do
349 b:ShowGridTemp(mode) 353 b:ShowGridTemp(mode)
350 b:UpdateActionIDLabel(mode) 354 b:UpdateActionIDLabel(mode)
351 end 355 end
352 end 356 end
353 357
354 function Bar:SetKeybindMode(mode) 358 function Bar:SetKeybindMode(mode)
355 self:SetSecureData("showAll",mode) 359 self:SetSecureData("showAll",mode)
356 self:UpdateUnitWatch()
357 for b in self:IterateButtons() do 360 for b in self:IterateButtons() do
358 b:SetKeybindMode(mode) 361 b:SetKeybindMode(mode)
359 end 362 end
360 end 363 end
361 364
436 end 439 end
437 440
438 function Bar:UpdateShowGrid() 441 function Bar:UpdateShowGrid()
439 for button in self:IterateButtons() do 442 for button in self:IterateButtons() do
440 button:UpdateShowGrid() 443 button:UpdateShowGrid()
441 end
442 end
443
444 function Bar:UpdateUnitWatch()
445 if self.unitwatch then
446 if self.unitwatchActive and (ReAction:GetConfigMode() or ReAction:GetKeybindMode()) then
447 UnregisterUnitWatch(self:GetFrame())
448 self.unitwatchActive = false
449 elseif not self.unitwatchActive then
450 RegisterUnitWatch(self:GetFrame())
451 self.unitwatchActive = true
452 end
453 self:RefreshSecureState()
454 end 444 end
455 end 445 end
456 446
457 function Bar:ShowControls(show) 447 function Bar:ShowControls(show)
458 if show then 448 if show then
588 function Bar:RegisterUnitWatch( unit, enable ) 578 function Bar:RegisterUnitWatch( unit, enable )
589 local f = self:GetFrame() 579 local f = self:GetFrame()
590 if unit then 580 if unit then
591 f:SetAttribute("unit",unit) 581 f:SetAttribute("unit",unit)
592 end 582 end
583 if enable then
584 RegisterUnitWatch(self:GetFrame(),true)
585 elseif self.unitwatch then
586 UnregisterUnitWatch(self:GetFrame())
587 end
593 self.unitwatch = enable 588 self.unitwatch = enable
594 self:UpdateUnitWatch() 589 self:RefreshSecureState()
595 end 590 end
596 591
597 -- set a keybind to push a value into "state-reaction" attribute 592 -- set a keybind to push a value into "state-reaction" attribute
598 function Bar:SetStateKeybind( key, state ) 593 function Bar:SetStateKeybind( key, state )
599 local f = self:GetFrame() 594 local f = self:GetFrame()