-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathOptions.lua
89 lines (84 loc) · 2.01 KB
/
Options.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
HelloAce.defaults = {
profile = {
someToggle = true,
someRange = 7,
someInput = "Hello World",
someSelect = 2, -- Banana
},
}
-- https://www.wowace.com/projects/ace3/pages/ace-config-3-0-options-tables
HelloAce.options = {
type = "group",
name = "HelloAce (label 2)",
handler = HelloAce,
args = {
someToggle = {
type = "toggle",
order = 1,
name = "a checkbox",
desc = "some description",
-- inline getter/setter example
get = function(info) return HelloAce.db.profile.someToggle end,
set = function(info, value) HelloAce.db.profile.someToggle = value end,
},
someRange = {
type = "range",
order = 2,
name = "a slider",
-- this will look for a getter/setter on our handler object
get = "GetSomeRange",
set = "SetSomeRange",
min = 1, max = 10, step = 1,
},
someKeybinding = {
type = "keybinding",
order = 3,
name = "a keybinding",
get = "GetValue",
set = "SetValue",
},
group1 = {
type = "group",
order = 4,
name = "a group",
inline = true,
-- getters/setters can be inherited through the table tree
get = "GetValue",
set = "SetValue",
args = {
someInput = {
type = "input",
order = 1,
name = "an input box",
width = "double",
},
someDescription = {
type = "description",
order = 2,
name = function() return format("The current time is: |cff71d5ff%s|r", date("%X")) end,
fontSize = "large",
},
someSelect = {
type = "select",
order = 3,
name = "a dropdown",
values = {"Apple", "Banana", "Strawberry"},
},
},
},
},
}
function HelloAce:GetSomeRange(info)
return self.db.profile.someRange
end
function HelloAce:SetSomeRange(info, value)
self.db.profile.someRange = value
end
-- for documentation on the info table
-- https://www.wowace.com/projects/ace3/pages/ace-config-3-0-options-tables#title-4-1
function HelloAce:GetValue(info)
return self.db.profile[info[#info]]
end
function HelloAce:SetValue(info, value)
self.db.profile[info[#info]] = value
end