comparison Bar.lua @ 81:57f8151ea0f0

- Fixed some snafus with creating bars - Added support for opening the bar editor to a particular path - Creating bars/states now selects the new bar/state in the config editor - moved Bar:SetStateAttribute() back to working optionally on buttons rather than buttonFrame container
author Flick <flickerstreak@gmail.com>
date Wed, 25 Jun 2008 21:07:18 +0000
parents da8ba8783924
children 5b7fd67a28ea
comparison
equal deleted inserted replaced
80:42ec2938d65a 81:57f8151ea0f0
263 UnregisterStateDriver(f, name) 263 UnregisterStateDriver(f, name)
264 self.statedrivers[name] = nil 264 self.statedrivers[name] = nil
265 end 265 end
266 end 266 end
267 267
268 -- Set an attribute on the frame (or buttonFrame if 'buttonFrame' = true) 268 -- Set an attribute on the frame (or each button if 'doButtons' = true)
269 -- Either or both 'map' and 'default' can be passed: 269 -- Either or both 'map' and 'default' can be passed:
270 -- - If 'map' is omitted, then 'default' is set to the attribute. 270 -- - If 'map' is omitted, then 'default' is set to the attribute.
271 -- - If 'map' is provided, then it is interpreted as an unordered 271 -- - If 'map' is provided, then it is interpreted as an unordered
272 -- table of the form { ["statename"] = ["value"] }, and will be 272 -- table of the form { ["statename"] = ["value"] }, and will be
273 -- converted into a SecureStateHeaderTemplate style state-parsed 273 -- converted into a SecureStateHeaderTemplate style state-parsed
274 -- string, e.g. "<state1>:<value1>;<state2>:<value2>". If 'default' 274 -- string, e.g. "<state1>:<value1>;<state2>:<value2>". If 'default'
275 -- is also provided, then its value will be converted to a string 275 -- is also provided, then its value will be converted to a string
276 -- and appended. 276 -- and appended.
277 function Bar:SetStateAttribute( attribute, map, default, buttonFrame ) 277 function Bar:SetStateAttribute( attribute, map, default, doButtons )
278 local f = buttonFrame and self:GetButtonFrame() or self:GetFrame()
279 local value = default 278 local value = default
280 if map then 279 if map then
281 local tmp = { } 280 local tmp = { }
282 for state, value in pairs(map) do 281 for state, value in pairs(map) do
283 table.insert(tmp, format("%s:%s",tostring(state),tostring(value))) 282 table.insert(tmp, format("%s:%s",tostring(state),tostring(value)))
285 if default then 284 if default then
286 table.insert(tmp, tostring(default)) 285 table.insert(tmp, tostring(default))
287 end 286 end
288 value = table.concat(tmp,";") 287 value = table.concat(tmp,";")
289 end 288 end
290 f:SetAttribute(attribute, value) 289 if doButtons then
291 SecureStateHeader_Refresh(f) 290 for b in self:IterateButtons() do
292 end 291 b:GetFrame():SetAttribute(attribute,value)
292 end
293 else
294 self:GetFrame():SetAttribute(attribute, value)
295 end
296 SecureStateHeader_Refresh(self:GetFrame())
297 end