Mercurial > wow > itemauditor
comparison Modules/Options.lua @ 67:b6c30a5156f9
Rearranged options to go with their related features.
author | Asa Ayers <Asa.Ayers@Gmail.com> |
---|---|
date | Wed, 28 Jul 2010 07:35:14 -0700 |
parents | 32d53abee666 |
children | 2d65db19d3ce |
comparison
equal
deleted
inserted
replaced
66:b7bc0488f13b | 67:b6c30a5156f9 |
---|---|
1 local ItemAuditor = select(2, ...) | 1 local ItemAuditor = select(2, ...) |
2 local Options = ItemAuditor:NewModule("Options") | 2 local Options = ItemAuditor:NewModule("Options") |
3 | 3 |
4 local currentFaction = UnitFactionGroup("player") | 4 local currentFaction = UnitFactionGroup("player") |
5 local AHFactions = { currentFaction, 'Neutral' } | 5 local AHFactions = { currentFaction, 'Neutral' } |
6 | |
7 -- TODO: Convert this to a text field. | |
8 local craftingThresholds = {5000, 10000, 50000} | |
9 local craftingThresholdsDisplay = {} | |
10 | |
11 local currentVersion = "@project-version@" | |
12 | |
13 for key, value in pairs(craftingThresholds) do | |
14 craftingThresholdsDisplay[key] = ItemAuditor:FormatMoney(value, '', true) | |
15 -- craftingThresholdsDisplay[key] = value | |
16 end | |
17 | 6 |
18 local windowIndex = nil | 7 local windowIndex = nil |
19 function Options.GetChatWindowList() | 8 function Options.GetChatWindowList() |
20 local windows = {} | 9 local windows = {} |
21 for i=1, NUM_CHAT_WINDOWS do | 10 for i=1, NUM_CHAT_WINDOWS do |
62 return selectedWindow | 51 return selectedWindow |
63 end | 52 end |
64 return DEFAULT_CHAT_FRAME | 53 return DEFAULT_CHAT_FRAME |
65 end | 54 end |
66 | 55 |
67 local optionsTable = { | |
68 handler = ItemAuditor, | |
69 name = "ItemAuditor "..currentVersion, | |
70 type = 'group', | |
71 args = { | |
72 prices = { | |
73 name = "Prices", | |
74 desc = "Control how your minimum price is calculated.", | |
75 type = 'group', | |
76 args = { | |
77 auction_house = { | |
78 type = "select", | |
79 name = "Auction House", | |
80 desc = "", | |
81 values = { currentFaction, 'Neutral' }, | |
82 get = 'GetAH', | |
83 set = 'SetAH', | |
84 }, | |
85 }, | |
86 }, | |
87 | |
88 | |
89 messages = { | |
90 name = "Messages", | |
91 desc = "Control which messages display in your chat window.", | |
92 type = 'group', | |
93 args = { | |
94 | |
95 item_cost = { | |
96 type = "toggle", | |
97 name = "Item Cost", | |
98 desc = "Shows a message every time an item's cost changes", | |
99 get = function() return ItemAuditor.db.profile.messages.cost_updates end, | |
100 set = function(info, value) ItemAuditor.db.profile.messages.cost_updates = value end, | |
101 order = 0, | |
102 }, | |
103 queue_skip = { | |
104 type = "toggle", | |
105 name = "Queue Skip", | |
106 desc = "Displays a message when an item is excluded from the queue.", | |
107 get = function() return ItemAuditor.db.profile.messages.queue_skip end, | |
108 set = function(info, value) ItemAuditor.db.profile.messages.queue_skip = value end, | |
109 disabled = 'IsQADisabled', | |
110 order = 1, | |
111 }, | |
112 output = { | |
113 type = "select", | |
114 name = "Output", | |
115 desc = "", | |
116 values = Options.GetChatWindowList, | |
117 get = Options.GetChatWindowIndex, | |
118 set = Options.SetChatWindow, | |
119 }, | |
120 }, | |
121 }, | |
122 | |
123 qa_options = { | |
124 name = "QA Options", | |
125 desc = "Control how ItemAuditor integrates with QuickAuctions", | |
126 type = 'group', | |
127 disabled = function() return not ItemAuditor:IsQACompatible() end, | |
128 args = { | |
129 toggle_qa = { | |
130 type = "toggle", | |
131 name = "Enable Quick Auctions", | |
132 desc = "This will enable or disable Quick Auctions integration", | |
133 get = "IsQAEnabled", | |
134 set = "SetQAEnabled", | |
135 order = 0, | |
136 }, | |
137 --[[ | |
138 add_mail = { | |
139 type = "toggle", | |
140 name = "Add mail cost to QA Threshold", | |
141 get = "IsQAEnabled", | |
142 set = "SetQAEnabled", | |
143 order = 1, | |
144 }, | |
145 ]] | |
146 auction_threshold = { | |
147 type = "range", | |
148 name = "Auction Threshold", | |
149 desc = "Don't create items that will make less than this amount of profit", | |
150 min = 0.0, | |
151 max = 1.0, | |
152 isPercent = true, | |
153 get = function() return ItemAuditor.db.char.auction_threshold end, | |
154 set = function(info, value) | |
155 ItemAuditor.db.char.auction_threshold = value | |
156 ItemAuditor:RefreshQAGroups() | |
157 end, | |
158 disabled = 'IsQADisabled', | |
159 order = 1, | |
160 }, | |
161 refresh_qa = { | |
162 type = "execute", | |
163 name = "Refresh QA Thresholds", | |
164 desc = "Resets all Quick Auctions thresholds", | |
165 func = "RefreshQAGroups", | |
166 disabled = 'IsQADisabled', | |
167 order = 9, | |
168 }, | |
169 } | |
170 }, | |
171 crafting_options = { | |
172 name = "Crafting with Skillet", | |
173 desc = "/ia queue", | |
174 type = 'group', | |
175 disabled = function() return Skillet == nil end, | |
176 args = { | |
177 crafting_threshold = { | |
178 type = "select", | |
179 name = "Crafting Threshold", | |
180 desc = "Don't create items that will make less than this amount of profit", | |
181 values = craftingThresholdsDisplay, | |
182 get = function() return ItemAuditor.db.char.crafting_threshold end, | |
183 set = function(info, value) ItemAuditor.db.char.crafting_threshold = value end, | |
184 order = 11, | |
185 }, | |
186 }, | |
187 }, | |
188 options = { | |
189 type = "execute", | |
190 name = "options", | |
191 desc = "Show Blizzard's options GUI", | |
192 func = "ShowOptionsGUI", | |
193 guiHidden = true, | |
194 }, | |
195 queue = { | |
196 type = "execute", | |
197 name = "queue", | |
198 desc = "Queue", | |
199 func = "Queue", | |
200 guiHidden = true, | |
201 }, | |
202 debug = { | |
203 type = "execute", | |
204 name = "debug", | |
205 desc = "Shows the debug frame", | |
206 func = function() ItemAuditor_DebugFrame:Show() end, | |
207 guiHidden = true, | |
208 }, | |
209 invested = { | |
210 type = "execute", | |
211 name = "invested", | |
212 desc = "Shows what you have invested in", | |
213 func = "DisplayInvested", | |
214 guiHidden = false, | |
215 }, | |
216 crafting = { | |
217 type = "execute", | |
218 name = "crafting", | |
219 desc = "<description goes here>", | |
220 func = "DisplayCrafting", | |
221 guiHidden = false, | |
222 }, | |
223 | |
224 suspend = { | |
225 type = "toggle", | |
226 name = "suspend", | |
227 desc = "Suspends ItemAuditor", | |
228 get = "IsEnabled", | |
229 set = "SetEnabled", | |
230 guiHidden = true, | |
231 }, | |
232 }, | |
233 } | |
234 | 56 |
235 function ItemAuditor:SetEnabled(info, enable) | 57 function ItemAuditor:SetEnabled(info, enable) |
236 self.db.profile.addon_enabled = enable | 58 self.db.profile.addon_enabled = enable |
237 if enable == self:IsEnabled() then | 59 if enable == self:IsEnabled() then |
238 -- do nothing | 60 -- do nothing |
241 self:Print('ItemAuditor is enabled.') | 63 self:Print('ItemAuditor is enabled.') |
242 else | 64 else |
243 self:Disable() | 65 self:Disable() |
244 self:Print('ItemAuditor is supended and will not watch for any events. Use "/ia suspend" to turn it back on.') | 66 self:Print('ItemAuditor is supended and will not watch for any events. Use "/ia suspend" to turn it back on.') |
245 end | 67 end |
246 end | |
247 | |
248 function ItemAuditor:RegisterOptions() | |
249 self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ItemAuditor", "ItemAuditor") | |
250 LibStub("AceConfig-3.0"):RegisterOptionsTable("ItemAuditor", optionsTable, {"ia"}) | |
251 end | 68 end |
252 | 69 |
253 local function pairsByKeys (t, f) | 70 local function pairsByKeys (t, f) |
254 local a = {} | 71 local a = {} |
255 for n in pairs(t) do table.insert(a, n) end | 72 for n in pairs(t) do table.insert(a, n) end |
295 function ItemAuditor:ShowOptionsGUI() | 112 function ItemAuditor:ShowOptionsGUI() |
296 InterfaceOptionsFrame_OpenToCategory(self.optionsFrame) | 113 InterfaceOptionsFrame_OpenToCategory(self.optionsFrame) |
297 end | 114 end |
298 | 115 |
299 | 116 |
117 ItemAuditor.Options.args.messages = { | |
118 name = "Messages", | |
119 desc = "Control which messages display in your chat window.", | |
120 type = 'group', | |
121 args = { | |
122 | |
123 item_cost = { | |
124 type = "toggle", | |
125 name = "Item Cost", | |
126 desc = "Shows a message every time an item's cost changes", | |
127 get = function() return ItemAuditor.db.profile.messages.cost_updates end, | |
128 set = function(info, value) ItemAuditor.db.profile.messages.cost_updates = value end, | |
129 order = 0, | |
130 }, | |
131 queue_skip = { | |
132 type = "toggle", | |
133 name = "Queue Skip", | |
134 desc = "Displays a message when an item is excluded from the queue.", | |
135 get = function() return ItemAuditor.db.profile.messages.queue_skip end, | |
136 set = function(info, value) ItemAuditor.db.profile.messages.queue_skip = value end, | |
137 disabled = 'IsQADisabled', | |
138 order = 1, | |
139 }, | |
140 output = { | |
141 type = "select", | |
142 name = "Output", | |
143 desc = "", | |
144 values = Options.GetChatWindowList, | |
145 get = Options.GetChatWindowIndex, | |
146 set = Options.SetChatWindow, | |
147 }, | |
148 }, | |
149 } | |
150 | |
151 ItemAuditor.Options.args.prices = { | |
152 name = "Prices", | |
153 desc = "Control how your minimum price is calculated.", | |
154 type = 'group', | |
155 args = { | |
156 auction_house = { | |
157 type = "select", | |
158 name = "Auction House", | |
159 desc = "", | |
160 values = { currentFaction, 'Neutral' }, | |
161 get = 'GetAH', | |
162 set = 'SetAH', | |
163 }, | |
164 }, | |
165 } |