diff classes/PetActionButton.lua @ 234:0e20f65375d5

Reworked button creation to not use goofy event driven semantics.
author Flick
date Tue, 22 Mar 2011 17:05:51 -0700
parents 158c9299185b
children
line wrap: on
line diff
--- a/classes/PetActionButton.lua	Tue Mar 22 11:48:09 2011 -0700
+++ b/classes/PetActionButton.lua	Tue Mar 22 17:05:51 2011 -0700
@@ -78,7 +78,7 @@
 ReAction.Button.PetAction = Pet
 ReAction:RegisterBarType(Pet)
 
-function Pet:New( idx, config, bar, idHint )
+function Pet:New( config, bar, idx, idHint )
   local name = format("ReAction_%s_PetAction_%d",bar:GetName(),idx)
  
   self = Super.New(self, name, config, bar, idx, "SecureActionButtonTemplate, ActionButtonTemplate" )
@@ -160,6 +160,26 @@
   return self
 end
 
+function Pet:SetupBar(bar)
+  Super.SetupBar(self,bar)
+
+  -- auto show/hide when pet exists
+  bar:RegisterUnitWatch("pet",true)
+
+  self:UpdateButtonLock(bar)
+end
+
+function Pet:UpdateButtonLock(bar)
+  local f = bar:GetFrame()
+  f:SetAttribute("lockbuttons",bar.config.lockButtons)
+  f:SetAttribute("lockbuttonscombat",bar.config.lockButtonsCombat)
+  f:Execute(
+    [[
+      lockButtons = self:GetAttribute("lockbuttons")
+      lockButtonsCombat = self:GetAttribute("lockbuttonscombat")
+    ]])
+end
+
 function Pet:Refresh()
   Super.Refresh(self)
   self:Update()