Mercurial > wow > reaction
comparison modules/ReAction_ConfigUI/ReAction_ConfigUI.lua @ 46:aa0b7fd68462
rearranged options table initialization a little
author | Flick <flickerstreak@gmail.com> |
---|---|
date | Thu, 10 Apr 2008 23:27:58 +0000 |
parents | 2232b8336903 |
children | e12b736c23c3 |
comparison
equal
deleted
inserted
replaced
45:38ee32135d86 | 46:aa0b7fd68462 |
---|---|
10 | 10 |
11 -- module declaration | 11 -- module declaration |
12 local moduleID = "ConfigUI" | 12 local moduleID = "ConfigUI" |
13 local module = ReAction:NewModule( moduleID ) | 13 local module = ReAction:NewModule( moduleID ) |
14 | 14 |
15 -- options table basic layer | |
16 module.configOptions = { | |
17 type = "group", | |
18 childGroups = "tab", | |
19 args = { | |
20 desc = { | |
21 type = "description", | |
22 name = L["Customizable replacement for Blizzard's Action Bars"], | |
23 }, | |
24 global = { | |
25 type = "group", | |
26 name = L["Global Settings"], | |
27 desc = L["Global configuration settings"], | |
28 args = { | |
29 unlock = { | |
30 type = "toggle", | |
31 handler = module, | |
32 name = L["Unlock Bars"], | |
33 desc = L["Unlock bars for dragging and resizing with the mouse"], | |
34 get = function() return ReAction.configMode end, | |
35 set = function(info, value) ReAction:SetConfigMode(value) end, | |
36 disabled = InCombatLockdown, | |
37 order = 1 | |
38 }, | |
39 }, | |
40 order = 1, | |
41 }, | |
42 bar = { | |
43 type = "group", | |
44 name = L["Bar Settings"], | |
45 desc = L["Configuration settings for bars"], | |
46 childGroups = "select", | |
47 args = { | |
48 all = { | |
49 type = "group", | |
50 name = L["All Bars"], | |
51 desc = L["Settings applicable to all bars"], | |
52 args = { | |
53 foo = { | |
54 type = "toggle", | |
55 name = "foo", | |
56 desc = "description", | |
57 get = function() return true end, | |
58 set = function() end, | |
59 } | |
60 }, | |
61 order = 1 | |
62 } | |
63 }, | |
64 order = 2 | |
65 }, | |
66 module = { | |
67 type = "group", | |
68 childGroups = "select", | |
69 name = L["Module Settings"], | |
70 desc = L["Configuration settings for each module"], | |
71 args = { | |
72 configUI = { | |
73 type = "group", | |
74 name = "Config UI", | |
75 desc = "description", | |
76 args = { | |
77 foo = { | |
78 type = "toggle", | |
79 handler = module, | |
80 name = "foo", | |
81 desc = "description", | |
82 get = function() return true end, | |
83 set = function() end, | |
84 } | |
85 } | |
86 }, | |
87 }, | |
88 order = -1, | |
89 }, | |
90 }, | |
91 plugins = { } | |
92 } | |
93 | |
94 -- module methods | 15 -- module methods |
95 function module:OnInitialize() | 16 function module:OnInitialize() |
96 self.db = ReAction.db:RegisterNamespace( moduleID, | |
97 { | |
98 profile = { } | |
99 } | |
100 ) | |
101 | |
102 for _, m in pairs(ReAction:GetOptions("global")) do | |
103 for k, v in pairs(m) do | |
104 self.configOptions.args.global.args[k] = v | |
105 end | |
106 end | |
107 | |
108 self.configOptions.args.profile = LibStub("AceDBOptions-3.0"):GetOptionsTable(ReAction.db) | |
109 self.configOptions.args.profile.order = -2 | |
110 | |
111 LibStub("AceConfigRegistry-3.0"):RegisterOptionsTable("ReAction",self.configOptions) | |
112 self.frame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ReAction", "ReAction") | |
113 self.frame.obj.SetCallback(self,"default") | |
114 | |
115 ReAction.RegisterCallback(self,"OnOptionsRegistered") | 17 ReAction.RegisterCallback(self,"OnOptionsRegistered") |
116 ReAction.RegisterCallback(self,"OnOptionsRefreshed") | 18 ReAction.RegisterCallback(self,"OnOptionsRefreshed") |
19 self:InitializeOptions() | |
117 end | 20 end |
118 | 21 |
119 function module:OnOptionsRegistered(evt, context, module, opts) | 22 function module:OnOptionsRegistered(evt, context, module, opts) |
120 if context == "global" then | 23 local c = self.configOptions.args[context] |
24 if c then | |
121 for k, v in pairs(opts) do | 25 for k, v in pairs(opts) do |
122 self.configOptions.args.global.args[k] = v | 26 c.args[k] = v |
123 end | 27 end |
124 elseif context == "module" then | |
125 for k, v in pairs(opts) do | |
126 self.configOptions.args.module.args[k] = v | |
127 end | |
128 elseif context == "bar" then | |
129 | |
130 elseif context == "barMenu" then | |
131 | |
132 end | 28 end |
133 end | 29 end |
134 | 30 |
135 function module:OnOptionsRefreshed(evt) | 31 function module:OnOptionsRefreshed(evt) |
136 -- TODO: refresh options frame (just OpenConfig again?) | 32 -- TODO: refresh options frame (just OpenConfig again?) |
141 if bar then | 37 if bar then |
142 -- TODO: select the correct bar pane | 38 -- TODO: select the correct bar pane |
143 end | 39 end |
144 end | 40 end |
145 | 41 |
146 function module:default() | 42 function module:InitializeOptions() |
147 -- called from the Interface Options panel, this returns the current profile to the default | 43 self.configOptions = { |
148 ReAction.db:ResetProfile() | 44 type = "group", |
45 childGroups = "tab", | |
46 args = { | |
47 global = { | |
48 type = "group", | |
49 name = L["Global Settings"], | |
50 desc = L["Global configuration settings"], | |
51 args = { }, | |
52 order = 1, | |
53 }, | |
54 bar = { | |
55 type = "group", | |
56 name = L["Bar Config"], | |
57 desc = L["Configuration settings for bars"], | |
58 args = { }, | |
59 order = 2, | |
60 }, | |
61 module = { | |
62 type = "group", | |
63 childGroups = "select", | |
64 name = L["Module Settings"], | |
65 desc = L["Configuration settings for each module"], | |
66 args = { }, | |
67 order = -1, | |
68 }, | |
69 }, | |
70 plugins = { } | |
71 } | |
72 | |
73 for c, tbl in pairs(self.configOptions.args) do | |
74 for _, m in pairs(ReAction:GetOptions(c)) do | |
75 for k, v in pairs(m) do | |
76 tbl.args[k] = v | |
77 end | |
78 end | |
79 end | |
80 | |
81 self.configOptions.args.desc = { | |
82 type = "description", | |
83 name = L["Customizable replacement for Blizzard's Action Bars"], | |
84 } | |
85 self.configOptions.args.profile = LibStub("AceDBOptions-3.0"):GetOptionsTable(ReAction.db) | |
86 self.configOptions.args.profile.order = -2 | |
87 | |
88 ReAction:RegisterOptions("module",self, { | |
89 configUI = { | |
90 type = "group", | |
91 name = "Config UI", | |
92 desc = "description", | |
93 args = { | |
94 foo = { | |
95 type = "toggle", | |
96 handler = self, | |
97 name = "foo", | |
98 desc = "description", | |
99 get = function() return true end, | |
100 set = function() end, | |
101 } | |
102 } | |
103 }, | |
104 }) | |
105 | |
106 LibStub("AceConfigRegistry-3.0"):RegisterOptionsTable("ReAction",self.configOptions) | |
107 self.frame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ReAction", "ReAction") | |
108 self.frame.obj:SetCallback("default", function() ReAction.db:ResetProfile() end) | |
149 end | 109 end |
150 | 110 |