comparison modules/State.lua @ 228:ad40cd3fc7e9

pull states config out of namespace
author Flick
date Mon, 21 Mar 2011 11:33:15 -0700
parents 2e2abdaad2e5
children b4c100011c75
comparison
equal deleted inserted replaced
227:741c4f9b251e 228:ad40cd3fc7e9
56 local ApplyStates, CleanupStates, SetProperty, GetProperty, RegisterProperty 56 local ApplyStates, CleanupStates, SetProperty, GetProperty, RegisterProperty
57 57
58 -- PRIVATE -- 58 -- PRIVATE --
59 do 59 do
60 function GetProperty( bar, state, propname ) 60 function GetProperty( bar, state, propname )
61 return tfetch(module.db.profile.bars, bar:GetName(), "states", state, propname) 61 return tfetch(bar:GetConfig(), "states", state, propname)
62 end 62 end
63 63
64 function SetProperty( bar, state, propname, value ) 64 function SetProperty( bar, state, propname, value )
65 local s = tbuild(module.db.profile.bars, bar:GetName(), "states", state) 65 local s = tbuild(bar:GetConfig(), "states", state)
66 s[propname] = value 66 s[propname] = value
67 bar:SetSecureStateData(state, propname, value) 67 bar:SetSecureStateData(state, propname, value)
68 end 68 end
69 69
70 function RegisterProperty( propname, snippet ) 70 function RegisterProperty( propname, snippet )
82 ApplyStates(bar) 82 ApplyStates(bar)
83 end 83 end
84 end 84 end
85 85
86 function ApplyStates( bar ) 86 function ApplyStates( bar )
87 local states = tfetch(module.db.profile.bars, bar:GetName(), "states") 87 local states = tfetch(bar:GetConfig(), "states")
88 if states then 88 if states then
89 bar:SetStateDriver(states) 89 bar:SetStateDriver(states)
90 end 90 end
91 end 91 end
92 92
113 ReAction:RegisterBarOptionGenerator(self, "GetBarOptions") 113 ReAction:RegisterBarOptionGenerator(self, "GetBarOptions")
114 114
115 ReAction.RegisterCallback(self, "OnCreateBar","OnRefreshBar") 115 ReAction.RegisterCallback(self, "OnCreateBar","OnRefreshBar")
116 ReAction.RegisterCallback(self, "OnDestroyBar") 116 ReAction.RegisterCallback(self, "OnDestroyBar")
117 ReAction.RegisterCallback(self, "OnRefreshBar") 117 ReAction.RegisterCallback(self, "OnRefreshBar")
118 ReAction.RegisterCallback(self, "OnEraseBar")
119 ReAction.RegisterCallback(self, "OnRenameBar")
120 end 118 end
121 119
122 function module:OnEnable() 120 function module:OnEnable()
123 self:UPDATE_SHAPESHIFT_FORMS() -- it doesn't fire on a /reloadui 121 self:UPDATE_SHAPESHIFT_FORMS() -- it doesn't fire on a /reloadui
124 end 122 end
132 ApplyStates(bar) 130 ApplyStates(bar)
133 end 131 end
134 end 132 end
135 133
136 function module:OnRefreshBar(event, bar, name) 134 function module:OnRefreshBar(event, bar, name)
137 local c = self.db.profile.bars[name] 135 ApplyStates(bar)
138 if c then
139 ApplyStates(bar)
140 end
141 end 136 end
142 137
143 function module:OnDestroyBar(event, bar, name) 138 function module:OnDestroyBar(event, bar, name)
144 CleanupStates(bar) 139 CleanupStates(bar)
145 end 140 end
146 141
147 function module:OnEraseBar(event, bar, name)
148 self.db.profile.bars[name] = nil
149 end
150
151 function module:OnRenameBar(event, bar, oldname, newname)
152 local bars = self.db.profile.bars
153 bars[newname], bars[oldname] = bars[oldname], nil
154 end
155 142
156 143
157 144
158 -- Options -- 145 -- Options --
159 146
523 return opts.order 510 return opts.order
524 end 511 end
525 512
526 -- get reference to states table: even if the bar 513 -- get reference to states table: even if the bar
527 -- name changes the states table ref won't 514 -- name changes the states table ref won't
528 self.states = tbuild(module.db.profile.bars, bar:GetName(), "states") 515 self.states = tbuild(bar:GetConfig(), "states")
529 self.state = tbuild(self.states, opts.name) 516 self.state = tbuild(self.states, opts.name)
530 517
531 opts.order = self:GetRuleField("order") 518 opts.order = self:GetRuleField("order")
532 if opts.order == nil then 519 if opts.order == nil then
533 -- add after the highest 520 -- add after the highest
822 return opts 809 return opts
823 end 810 end
824 811
825 function module:GetBarOptions(bar) 812 function module:GetBarOptions(bar)
826 local private = { } 813 local private = { }
827 local states = tbuild(module.db.profile.bars, bar:GetName(), "states") 814 local states = tbuild(bar:GetConfig(), "states")
828 local options = { 815 local options = {
829 name = L["Dynamic State"], 816 name = L["Dynamic State"],
830 type = "group", 817 type = "group",
831 order = -1, 818 order = -1,
832 childGroups = "tree", 819 childGroups = "tree",