comparison Options.lua @ 7:f920db5fc6b1

version 0.3
author Flick <flickerstreak@gmail.com>
date Tue, 20 Mar 2007 21:25:29 +0000
parents 8e0ff8ae4c08
children c05fd3e18b4f
comparison
equal deleted inserted replaced
6:2da5089ab7ff 7:f920db5fc6b1
1 -- Ace2 Options table for ReAction 1 -- Ace2 global options tables for ReAction
2
3
4 -- autogenerate the NewBar sub-types table
5 local function GenerateNewBarArgs()
6 local args = { }
7 for _, name in pairs(ReAction:GetButtonTypeList() ) do
8 args[name] = {
9 type="execute",
10 name=name,
11 desc=name,
12 }
13 end
14 return args
15 end
16
2 17
3 ReActionConsoleOptions = { 18 ReActionConsoleOptions = {
4 type="group", 19 type="group",
5 args={ 20 args={
6 lock = { 21 lock = {
19 34
20 bindings = { 35 bindings = {
21 type = "execute", 36 type = "execute",
22 name = "bindings", 37 name = "bindings",
23 desc = "Launches keybinding setup mode", 38 desc = "Launches keybinding setup mode",
24 func = function() ReBinder:Enable() end, 39 func = function() ReBound:Enable() end,
25 }, 40 },
26 41
27 hideart = { 42 hideart = {
28 type = "toggle", 43 type = "toggle",
29 name = "hideart", 44 name = "hideart",
30 desc = "Hide default Blizzard action bar artwork and XP bar", 45 desc = "Hide default Blizzard action bar artwork and XP bar",
31 get = "IsArtHidden", 46 get = "IsArtHidden",
32 set = "ToggleHideArt", 47 set = "ToggleHideArt",
33 }, 48 },
34 49
35 new = {
36 type = "execute",
37 name = "new",
38 desc = "Create a new bar with default settings",
39 func = "NewBar"
40 },
41
42 showid = { 50 showid = {
43 type = "toggle", 51 type = "toggle",
44 name = "showid", 52 name = "showid",
45 desc = "Show ActionIDs on buttons", 53 desc = "Show ActionIDs on buttons",
46 get = "IsActionIDVisible", 54 get = "AreIdsVisible",
47 set = "ToggleActionID", 55 set = "ToggleIds",
56 },
57
58 create = {
59 type = "group",
60 name = "create",
61 pass = true,
62 func = "NewBar",
63 args = GenerateNewBarArgs(),
64 desc = "Create a new bar",
48 }, 65 },
49 66
50 resetall = { 67 resetall = {
51 type = "execute", 68 type = "execute",
52 name = "resetall", 69 name = "resetall",
53 desc = "Resets to single bar in the default position", 70 desc = "Resets to single bar in the default position",
54 func = "ResetBars" 71 func = "ResetBars",
55 }, 72 },
56 73
57 --[[ 74 --[[
58 resync = { 75 resync = {
59 type = "execute", 76 type = "execute",
60 name = "resync", 77 name = "resync",
61 desc = "Re-orders action IDs sequentially amongst bars", 78 desc = "Re-orders action IDs sequentially amongst bars",
62 func = "ResyncActionIDs" 79 func = "ResyncActionIDs",
80 disabled = true -- not yet implemented
63 }, 81 },
64 ]] 82 ]]
65 } 83 }
66 } 84 }
67 85
68 86
69 ReActionGlobalMenuOptions = { 87 ReActionGlobalMenuOptions = {
70 type="group", 88 type = "group",
89 -- handler = nil, -- NOTE: this variable isn't defined yet, must be added later
71 args={ 90 args={
72 lockbars = { 91 lockbars = {
73 type = "toggle", 92 type = "toggle",
74 name = "Lock Bars", 93 name = "Lock Bars",
75 desc = "Locks action bars and disables rearrangement", 94 desc = "Locks action bars and disables rearrangement",
76 get = function() return ReAction:IsLocked() end, 95 get = "IsLocked",
77 set = function() ReAction:ToggleLocked() end, 96 set = "ToggleLocked",
78 order = 1, 97 order = 1,
79 }, 98 },
80 99
81 lockbtns = { 100 lockbtns = {
82 type = "toggle", 101 type = "toggle",
83 name = "Lock Buttons", 102 name = "Lock Buttons",
84 desc = "Locks action bars and disables rearrangement", 103 desc = "Prevents buttons from being dragged off accidentally. Shift-drag instead.",
85 get = function() return LOCK_ACTIONBAR == "1" end, 104 get = function() return LOCK_ACTIONBAR == "1" end,
86 set = function() LOCK_ACTIONBAR = (LOCK_ACTIONBAR == "1" and "0" or "1") end, 105 set = function() LOCK_ACTIONBAR = (LOCK_ACTIONBAR == "1" and "0" or "1") end,
87 order = 2, 106 order = 2,
88 }, 107 },
89 108
109 new = {
110 type = "group",
111 name = "New bar",
112 pass = true,
113 func = "NewBar",
114 args = GenerateNewBarArgs(),
115 desc = "Create a new bar",
116 order = 3,
117 },
118
90 bindings = { 119 bindings = {
91 type = "execute", 120 type = "execute",
92 name = "Set Key Bindings", 121 name = "Set Key Bindings",
93 desc = "Launches keybinding setup mode", 122 desc = "Launches keybinding setup mode",
94 func = function() ReBinder:Enable() end, 123 func = function() ReBound:Enable() end,
95 order = 3,
96 },
97
98 new = {
99 type = "execute",
100 name = "New Bar",
101 desc = "Create a new bar with default settings",
102 func = function() ReAction:NewBar() end,
103 order = 4, 124 order = 4,
104 }, 125 },
105 126
106 showid = { 127 showid = {
107 type = "toggle", 128 type = "toggle",
108 name = "Show Action IDs", 129 name = "Show Action IDs",
109 desc = "Show ActionIDs on buttons", 130 desc = "Show ActionIDs on buttons",
110 get = function() return ReAction:IsActionIDVisible() end, 131 get = "AreIdsVisible",
111 set = function() ReAction:ToggleActionID() end, 132 set = "ToggleIds",
112 order = 5, 133 order = 5,
113 }, 134 },
114 135
136 hidedefault = {
137 type = "toggle",
138 name = "Hide Default Main Menu Bar",
139 desc = "Hides default Blizzard main menu bar, including bag bar, micro menu bar, shapeshift bar, lag meter, and XP bar",
140 get = "IsArtHidden",
141 set = "ToggleHideArt",
142 order = 6,
143 },
144
115 --[[ 145 --[[
116 resync = { 146 resync = {
117 type = "execute", 147 type = "execute",
118 name = "Re-sync Action IDs", 148 name = "Re-sync Action IDs",
119 desc = "Re-orders action IDs sequentially amongst bars", 149 desc = "Re-orders action IDs sequentially amongst bars",
120 func = function() ReAction:ResyncActionIDs() end, 150 func = "ResyncActionIDs",
121 order = 6, 151 disabled = true, -- not yet implemented
122 }, 152 },
123 ]] 153 ]]
124 154
125 hideart = {
126 type = "toggle",
127 name = "Hide Default Art",
128 desc = "Hide default Blizzard action bar artwork and XP bar",
129 get = function() return ReAction:IsArtHidden() end,
130 set = function() return ReAction:ToggleHideArt() end,
131 order = 7,
132 },
133
134 --[[
135 reset = {
136 type = "execute",
137 name = "Reset Bars",
138 desc = "Resets to single bar in the default position",
139 func = function() ReAction:ResetBars() end,
140 order = 8,
141 },
142 ]]
143
144 } 155 }
145 } 156 }
146 157
147 function GenerateReActionBarOptions( bar ) 158
148 return { 159
160
161
162 function GenerateReActionBarOptions( bar, main )
163 local opts = {
149 type = "group", 164 type = "group",
165 handler = bar,
150 args = { 166 args = {
151 167
152 sep1 = { 168 sep1 = {
153 type = "header", 169 type = "header",
154 name = " ", 170 name = " ",
155 desc = " ", 171 desc = " ",
156 order = 9, 172 order = 1,
157 }, 173 },
158 174
159 hdr1 = { 175 hdr1 = {
160 type = "header", 176 type = "header",
161 name = "Bar Options", 177 name = "Options for Bar #"..bar.barID,
162 des = "Bar Options", 178 desc = "Options for Bar #"..bar.barID,
163 order = 10, 179 order = 2,
180 },
181
182 layout = {
183 type = "group",
184 name = "Layout",
185 desc = "Button ordering options",
186 order = 3,
187 args = {
188 growLeft = {
189 type = "toggle",
190 name = "Right to Left",
191 desc = "Lay out buttons right-to-left rather than left-to-right",
192 get = "GetGrowLeft",
193 set = "SetGrowLeft",
194 order = 3,
195 },
196
197 growUp = {
198 type = "toggle",
199 name = "Bottom to Top",
200 desc = "Lay out buttons bottom-to-top rather than top-to-bottom",
201 get = "GetGrowUp",
202 set = "SetGrowUp",
203 order = 4,
204 },
205
206 columnMajor = {
207 type = "toggle",
208 name = "Arrange in Columns",
209 desc = "Lay out buttons sequentially in columns, rather than in rows",
210 get = "GetColumnMajor",
211 set = "SetColumnMajor",
212 order = 5,
213 },
214
215 flip = {
216 type = "execute",
217 name = "Flip rows/columns",
218 desc = "Swaps the number of rows and columns, and inverts the button numbering",
219 func = "FlipRowsColumns",
220 order = 6,
221 },
222 },
164 }, 223 },
165 224
166 --[[ 225 paging = {
167 hidden = { 226 type = "group",
168 type = "toggle", 227 name = "Paging",
169 name = "Hidden", 228 desc = "Multi-page options",
170 desc = "Hides the bar except when rearranging bars", 229 order = 4,
171 get = function() return not bar:GetVisibility() end, 230 args = {
172 set = function() bar:ToggleVisibility() end, 231 pages = {
173 order = 11, 232 type = "range",
174 }, 233 name = "Number of Pages",
175 ]] 234 desc = "Sets the number of pages",
235 get = "GetPages",
236 set = "SetPages",
237 min = 1,
238 max = 10,
239 step = 1,
240 order = 1,
241 },
242
243 autostance = {
244 type = "toggle",
245 name = "Auto Stance Switch",
246 desc = "Automatically switch pages when changing stance or shapeshift form.",
247 get = "GetAutoStanceSwitch",
248 set = "ToggleAutoStanceSwitch",
249 order = 2,
250 },
251
252 autostealth = {
253 type = "toggle",
254 name = "Auto Stealth Switch",
255 desc = "Automatically switch pages when stealthing/unstealthing.",
256 get = "GetAutoStealthSwitch",
257 set = "ToggleAutoStealthSwitch",
258 order = 3,
259 },
260
261 hidecontrols = {
262 type = "toggle",
263 name = "Hide Paging Controls",
264 desc = "Hide the page up/down controls",
265 get = "ArePageControlsHidden",
266 set = "TogglePageControlsHidden",
267 order = 4,
268 disabled = "IsPagingDisabled",
269 },
270
271 controlsloc = {
272 type = "text",
273 name = "Control location",
274 desc = "Location of the page up/down controls",
275 get = function() return bar:GetPageControlsLoc() or "Blizzard" end,
276 set = function(loc) bar:SetPageControlsLoc(loc) end,
277 order = 5,
278 disabled = function() return bar:IsPagingDisabled() or bar:ArePageControlsHidden() end,
279 validate = { "Blizzard", "LEFT", "RIGHT", "TOP", "BOTTOM" }
280 },
281 },
282 },
283
284 visibility = {
285 type = "group",
286 name = "Visibility",
287 desc = "Set bar visibility options",
288 order = 5,
289 args = {
290 visible = {
291 type = "toggle",
292 name = "Always Visible",
293 desc = "The bar will always be visible.|n This setting overrides conditional settings below.",
294 get = "GetVisibility",
295 set = function() bar:SetVisibility(true) end,
296 order = 1,
297 },
298
299 hidden = {
300 type = "toggle",
301 name = "Always Hidden",
302 desc = "The bar will always be hidden, except when bars are unlocked.|n This setting overrides conditional settings below.",
303 get = function() return not bar:GetVisibility() end,
304 set = function() bar:SetVisibility(false) end,
305 order = 2,
306 },
307
308 spring = {
309 type = "toggle",
310 name = "Spring Bar Mode",
311 desc = "The bar is collapsed to a single button, which displays the last action used. Mousing over the button shows the entire bar.|n This setting overrides conditional settings below.",
312 get = function() end,
313 set = function() end,
314 hidden = true,
315 disabled = true, -- not yet implemented
316 order = 3,
317 },
318
319 conditional = {
320 type = "group",
321 name = "Auto Show",
322 desc = "Dynamically hide and show the entire bar based on certain conditions.",
323 hidden = true,
324 disabled = true, -- not yet implemented
325 order = 4,
326 args = {
327
328 mouseover = {
329 type = "toggle",
330 name = "Show On Mouseover",
331 desc = "Show the bar only when the mouse is over it.",
332 disabled = true, -- not yet implemented
333 get = function() end,
334 set = function() end,
335 order = 1,
336 },
337
338 combat = {
339 type = "toggle",
340 name = "Show In Combat",
341 desc = "Show the bar only when in combat.",
342 disabled = true, -- not yet implemented
343 get = function() end,
344 set = function() end,
345 order = 2,
346 },
347
348 nocombat = {
349 type = "toggle",
350 name = "Hide in Combat",
351 desc = "Show the bar only when not in combat.",
352 disabled = true, -- not yet implemented
353 get = function() end,
354 set = function() end,
355 order = 3,
356 }
357 }
358 },
359
360 }
361 },
176 362
177 opacity = { 363 opacity = {
178 type = "range", 364 type = "range",
179 name = "Opacity", 365 name = "Opacity",
180 desc = "Set bar opacity", 366 desc = "Set the bar alpha value, from fully transparent (0) to fully opaque (100).",
181 get = function() return bar:GetOpacity() end, 367 get = "GetOpacity",
182 set = function(o) bar:SetOpacity(o) end, 368 set = "SetOpacity",
183 min = 0, 369 min = 0,
184 max = 100, 370 max = 100,
185 step = 1, 371 step = 1,
186 order = 12 372 order = 6,
187 }, 373 },
188 374
189 delete = { 375 delete = {
190 type = "execute", 376 type = "execute",
191 name = "Delete Bar", 377 name = "Delete Bar #"..bar.barID,
192 desc = "Deletes the bar", 378 desc = "Deletes bar #"..bar.barID,
193 func = function() ReAction:DeleteBar(bar.barID) end, 379 func = function() main:DeleteBar(bar.barID) end,
194 order = 13, 380 order = 7
195 }, 381 },
196 } 382 }
197 } 383 }
384
385 -- generate the auto-hide options for shapeshift forms. Note that this will
386 -- only show forms that the character has learned, and the ordering may (? did this get fixed?)
387 -- vary from character to character of the same class
388 local args = opts.args.visibility.args.conditional.args
389 for i = 1, GetNumShapeshiftForms() do
390 local _, name = GetShapeshiftFormInfo(i)
391 args["stance"..i] = {
392 type = "toggle",
393 name = "Show In "..name,
394 desc = "Show the bar when in "..name.."." ,
395 get = function() end,
396 set = function() end,
397 order = #args + 1,
398 disabled = true,
399 }
400 end
401
402 return opts
198 end 403 end
199 404
200
201 local function setButtonConfig( bar, field, value )
202 if bar and bar.config and bar.config.btnConfig then
203 bar.config.btnConfig[field] = value
204 for _, b in ipairs(bar.buttons) do
205 b:ApplyLayout()
206 b:UpdateDisplay()
207 end
208 end
209 end
210
211 local function getButtonConfig( bar, field )
212 if bar and bar.config and bar.config.btnConfig then
213 return bar.config.btnConfig[field]
214 end
215 end
216
217 local function toggleButtonConfig( bar, field )
218 if bar and bar.config and bar.config.btnConfig then
219 bar.config.btnConfig[field] = not bar.config.btnConfig[field]
220 for _, b in ipairs(bar.buttons) do
221 b:ApplyLayout()
222 b:UpdateDisplay()
223 end
224 end
225 end
226
227
228 function GenerateReActionButtonOptions( bar )
229 return {
230 type = "group",
231 args = {
232
233 sep2 = {
234 type = "header",
235 name = " ",
236 desc = " ",
237 order = 14,
238 },
239
240 hdr2 = {
241 type = "header",
242 name = "Button Options",
243 desc = "Button Options",
244 order = 15,
245 },
246
247 showgrid = {
248 type = "toggle",
249 name = "Always Show Buttons",
250 desc = "Show button placeholders when no action is assigned or on the cursor. Note that buttons are always shown when bars are unlocked.",
251 get = function() return getButtonConfig(bar, "showGrid") end,
252 set = function() toggleButtonConfig(bar, "showGrid") end,
253 order = 16,
254 },
255
256 colorkeys = {
257 type = "toggle",
258 name = "Color Hotkeys",
259 desc = "Enables/disables colorizing hotkeys by key modifier",
260 get = function() return getButtonConfig(bar, "keyBindColorCode") end,
261 set = function() toggleButtonConfig(bar, "keyBindColorCode", c) end,
262 order = 17,
263 },
264
265 keyloc = {
266 type = "text",
267 name = "Hotkey Location",
268 desc = "Sets hotkey location",
269 get = function() return getButtonConfig(bar, "keyBindLoc") end,
270 set = function(loc) setButtonConfig(bar, "keyBindLoc", loc) end,
271 validate = { "TOP", "BOTTOM", "TOPLEFT", "TOPRIGHT", "BOTTOMLEFT", "BOTTOMRIGHT" },
272 order = 18,
273 },
274
275 }
276 }
277 end
278
279