comparison modules/ReAction_PetAction/ReAction_PetAction.lua @ 90:7cabc8ac6c16

Updates for wow 3.0 - TOC update - updated changed APIs/frame names - rewrote state code per new SecureHandlers API - cleaned up Bar, ActionButton code - removed AceLibrary/Dewdrop, menu from bar right-click - fixed various small bugs Updated WowAce external locations Updated README.html
author Flick <flickerstreak@gmail.com>
date Wed, 15 Oct 2008 16:29:41 +0000
parents fc83b3f5b322
children c2504a8b996c
comparison
equal deleted inserted replaced
89:491a6ffe7260 90:7cabc8ac6c16
59 59
60 function module:OnCreateBar(event, bar, name) 60 function module:OnCreateBar(event, bar, name)
61 if bar.config.type == moduleID then 61 if bar.config.type == moduleID then
62 -- auto show/hide when pet exists 62 -- auto show/hide when pet exists
63 bar:GetFrame():SetAttribute("unit","pet") 63 bar:GetFrame():SetAttribute("unit","pet")
64 RegisterUnitWatch(bar:GetFrame()) 64 if not ReAction:GetConfigMode() then
65 RegisterUnitWatch(bar:GetFrame())
66 end
65 self:OnRefreshBar(event, bar, name) 67 self:OnRefreshBar(event, bar, name)
66 end 68 end
67 end 69 end
68 70
69 function module:OnRefreshBar(event, bar, name) 71 function module:OnRefreshBar(event, bar, name)
190 rawset(self,idx,value) 192 rawset(self,idx,value)
191 end 193 end
192 }) 194 })
193 195
194 local frameRecycler = {} 196 local frameRecycler = {}
197 local meta = { __index = Button }
195 198
196 function Button:New( bar, idx, config ) 199 function Button:New( bar, idx, config )
197 -- create new self 200 -- create new self
198 self = setmetatable( { }, { __index = Button } ) 201 self = setmetatable(
199 self.bar, self.idx, self.config = bar, idx, config 202 {
203 bar = bar,
204 idx = idx,
205 config = config,
206 }, meta )
200 207
201 local name = config.name or ("ReAction_%s_%s_%d"):format(bar:GetName(),moduleID,idx) 208 local name = config.name or ("ReAction_%s_%s_%d"):format(bar:GetName(),moduleID,idx)
202 config.name = name 209 config.name = name
203 self.name = name 210 self.name = name
204 config.actionID = ActionIDList[config.actionID] -- gets a free one if none configured 211 config.actionID = ActionIDList[config.actionID] -- gets a free one if none configured
205 212
206 -- have to recycle frames with the same name: 213 -- have to recycle frames with the same name:
207 -- otherwise you either get references to old textures because named CreateFrame() 214 -- otherwise you either get references to old textures because named CreateFrame()
208 -- doesn't overwrite existing globals (below) 215 -- doesn't overwrite existing globals. Can't set them to nil in the global table,
209 -- or, if you set them to nil in the global table, you get taint because of the 216 -- as it causes taint.
210 -- crappy PetActionBar code. 217 local parent = bar:GetFrame()
211 local parent = bar:GetButtonFrame()
212 local f = frameRecycler[name] 218 local f = frameRecycler[name]
213 if f then 219 if f then
214 f:SetParent(parent) 220 f:SetParent(parent)
215 else 221 else
216 f = CreateFrame("CheckButton", name, parent, "PetActionButtonTemplate") 222 f = CreateFrame("CheckButton", name, parent, "PetActionButtonTemplate")
220 end 226 end
221 f:SetFrameStrata("MEDIUM") 227 f:SetFrameStrata("MEDIUM")
222 self.frame = f 228 self.frame = f
223 self.icon = _G[("%sIcon"):format(name)] 229 self.icon = _G[("%sIcon"):format(name)]
224 self.acTex = _G[("%sAutoCastable"):format(name)] 230 self.acTex = _G[("%sAutoCastable"):format(name)]
225 self.acModel = _G[("%sAutoCast"):format(name)] 231 self.acModel = _G[("%sShine"):format(name)]
226 self.cooldown = _G[("%sCooldown"):format(name)] 232 self.cooldown = _G[("%sCooldown"):format(name)]
227 self.hotkey = _G[("%sHotKey"):format(name)] 233 self.hotkey = _G[("%sHotKey"):format(name)]
228 234
229 f:HookScript("OnDragStart", function() self:Update() end) 235 f:HookScript("OnDragStart", function() self:Update() end)
230 f:HookScript("OnReceiveDrag", function() self:Update() end) 236 f:HookScript("OnReceiveDrag", function() self:Update() end)
247 else 253 else
248 self:Update() 254 self:Update()
249 end 255 end
250 end) 256 end)
251 257
252 self.binder = ReAction:AttachBinder(self) 258 --self.binder = ReAction:AttachBinder(self)
253 259
254 self:Refresh() 260 self:Refresh()
255 return self 261 return self
256 end 262 end
257 263