comparison ReAction.lua @ 60:44649a10378d

Fixed options handling to create a separate table for each bar instead of a shared table with proxy handler. Also simplified options registration and moved some options around.
author Flick <flickerstreak@gmail.com>
date Sat, 10 May 2008 00:08:01 +0000
parents 20003239af0b
children 2ee41dcd673f
comparison
equal deleted inserted replaced
59:7430a8dd4e90 60:44649a10378d
148 self:RegisterChatCommand("reaction", SlashHandler) 148 self:RegisterChatCommand("reaction", SlashHandler)
149 self:RegisterChatCommand("rxn", SlashHandler) 149 self:RegisterChatCommand("rxn", SlashHandler)
150 self:RegisterEvent("PLAYER_REGEN_DISABLED") 150 self:RegisterEvent("PLAYER_REGEN_DISABLED")
151 151
152 self.bars = {} 152 self.bars = {}
153 self.options = {}
154 self.defaultBarConfig = {} 153 self.defaultBarConfig = {}
155 154
156 self:RegisterOptions("global", self, { 155 self.options = {
157 unlock = { 156 type = "group",
158 type = "toggle", 157 name = "ReAction",
159 handler = module, 158 childGroups = "tab",
160 name = L["Unlock Bars"], 159 args = {
161 desc = L["Unlock bars for dragging and resizing with the mouse"], 160 _desc = {
162 get = function() return self.configMode end, 161 type = "description",
163 set = function(info, value) self:SetConfigMode(value) end, 162 name = L["Customizable replacement for Blizzard's Action Bars"],
164 disabled = InCombatLockdown, 163 order = 1,
165 order = 1 164 },
165 global = {
166 type = "group",
167 name = L["Global Settings"],
168 desc = L["Global configuration settings"],
169 args = {
170 unlock = {
171 type = "toggle",
172 handler = module,
173 name = L["Unlock Bars"],
174 desc = L["Unlock bars for dragging and resizing with the mouse"],
175 get = function() return self.configMode end,
176 set = function(info, value) self:SetConfigMode(value) end,
177 disabled = InCombatLockdown,
178 order = 1
179 },
180 },
181 plugins = { },
182 order = 2,
183 },
184 module = {
185 type = "group",
186 childGroups = "select",
187 name = L["Module Settings"],
188 desc = L["Configuration settings for each module"],
189 args = { },
190 plugins = { },
191 order = 3,
192 },
193 profile = LibStub("AceDBOptions-3.0"):GetOptionsTable(self.db)
166 }, 194 },
167 }) 195 plugins = { }
196 }
168 197
169 end 198 end
170 199
171 function ReAction:OnEnable() 200 function ReAction:OnEnable()
172 InitializeBars() 201 InitializeBars()
342 self.defaultBarConfigChoice = nil 371 self.defaultBarConfigChoice = nil
343 end 372 end
344 self:RefreshOptions() 373 self:RefreshOptions()
345 end 374 end
346 375
347 -- See modules/ReAction_ConfigUI for valid options contexts. 376 function ReAction:RegisterOptions(module, options, global)
348 function ReAction:RegisterOptions(context, module, opts) 377 self.options.args[global and "global" or "module"].plugins[module:GetName()] = options
349 if module == nil or context == nil then
350 error("ReAction:RegisterOptions requires a module object and context ID")
351 end
352 if not self.options[context] then
353 self.options[context] = {}
354 end
355 self.options[context][module] = opts
356 self.callbacks:Fire("OnOptionsRegistered", context, module, opts)
357 end
358
359 function ReAction:GetOptions(context)
360 if context then
361 if not self.options[context] then
362 self.options[context] = { }
363 end
364 return self.options[context]
365 end
366 end 378 end
367 379
368 function ReAction:RefreshOptions() 380 function ReAction:RefreshOptions()
369 self.callbacks:Fire("OnOptionsRefreshed") 381 self.callbacks:Fire("OnOptionsRefreshed")
370 end 382 end