annotate Modules/Options.lua @ 16:56de19d9bd8d

Cleaned up the messages. You can turn the notifications of price changes off and those messages will only show gold or silver if they are more than 0. I have also removed the dependency on AceConsole because it doesn't allow changing the color of the addon name when I print messages.
author Asa Ayers <Asa.Ayers@Gmail.com>
date Sat, 03 Jul 2010 10:05:53 -0700
parents 44e70a3fdb19
children c7b3585c73df
rev   line source
Asa@3 1 local addonName, addonTable = ...;
Asa@3 2 local addon = _G[addonName]
Asa@3 3
Asa@3 4 local utils = addonTable.utils
Asa@3 5
Asa@13 6 local currentFaction = UnitFactionGroup("player")
Asa@13 7 local AHFactions = { currentFaction, 'Neutral' }
Asa@13 8
Asa@3 9 local options = {
Asa@13 10 handler = addon,
Asa@3 11 name = "ItemAuditor",
Asa@3 12 type = 'group',
Asa@3 13 args = {
Asa@13 14 prices = {
Asa@13 15 name = "Prices",
Asa@13 16 desc = "Control how your minimum price is calculated.",
Asa@13 17 type = 'group',
Asa@13 18 args = {
Asa@13 19 auction_house = {
Asa@13 20 type = "select",
Asa@13 21 name = "Auction House",
Asa@13 22 desc = "",
Asa@13 23 values = { currentFaction, 'Neutral' },
Asa@13 24 get = 'GetAH',
Asa@13 25 set = 'SetAH',
Asa@13 26 },
Asa@13 27 },
Asa@3 28 },
Asa@13 29
Asa@13 30
Asa@13 31 messages = {
Asa@13 32 name = "Messages",
Asa@13 33 desc = "Control which messages display in your chat window.",
Asa@13 34 type = 'group',
Asa@13 35 args = {
Asa@13 36 dbg = {
Asa@13 37 type = "toggle",
Asa@13 38 name = "Debug",
Asa@13 39 desc = "Toggles debug messages in chat",
Asa@13 40 get = "GetDebug",
Asa@13 41 set = "SetDebug",
Asa@16 42 order = 100,
Asa@16 43 },
Asa@16 44 item_cost = {
Asa@16 45 type = "toggle",
Asa@16 46 name = "Item Cost",
Asa@16 47 desc = "Shows a message every time an item's cost changes",
Asa@16 48 get = function() return ItemAuditor.db.profile.messages.cost_updates end,
Asa@16 49 set = function(info, value) ItemAuditor.db.profile.messages.cost_updates = value end,
Asa@13 50 order = 0,
Asa@13 51 },
Asa@13 52 },
Asa@3 53 },
Asa@13 54
Asa@13 55 qa_options = {
Asa@13 56 name = "QA Options",
Asa@13 57 desc = "Control how ItemAuditor integrates with QuickAuctions",
Asa@13 58 type = 'group',
Asa@13 59 -- disabled = (not addon.QA_compatibile),
Asa@13 60 disabled = function() return not ItemAuditor:IsQACompatible() end,
Asa@13 61 args = {
Asa@13 62 toggle_qa = {
Asa@13 63 type = "toggle",
Asa@13 64 name = "Enable Quick Auctions",
Asa@13 65 desc = "This will enable or disable Quick Auctions integration",
Asa@13 66 get = "IsQAEnabled",
Asa@13 67 set = "SetQAEnabled",
Asa@13 68 order = 0,
Asa@13 69 },
Asa@13 70 --[[
Asa@13 71 add_mail = {
Asa@13 72 type = "toggle",
Asa@13 73 name = "Add mail cost to QA Threshold",
Asa@13 74 get = "IsQAEnabled",
Asa@13 75 set = "SetQAEnabled",
Asa@13 76 order = 1,
Asa@13 77 },
Asa@13 78 ]]
Asa@13 79 refresh_qa = {
Asa@13 80 type = "execute",
Asa@13 81 name = "Refresh QA Thresholds",
Asa@13 82 desc = "Resets all Quick Auctions thresholds",
Asa@13 83 func = "RefreshQAGroups",
Asa@13 84 disabled = 'IsQADisabled',
Asa@13 85 },
Asa@13 86 }
Asa@12 87 },
Asa@3 88 options = {
Asa@3 89 type = "execute",
Asa@3 90 name = "options",
Asa@3 91 desc = "Show Blizzard's options GUI",
Asa@3 92 func = "ShowOptionsGUI",
Asa@3 93 guiHidden = true,
Asa@3 94 },
Asa@3 95 },
Asa@3 96 }
Asa@3 97
Asa@3 98 function addon:RegisterOptions()
Asa@3 99 self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ItemAuditor", "ItemAuditor")
Asa@3 100 LibStub("AceConfig-3.0"):RegisterOptionsTable("ItemAuditor", options, {"ia"})
Asa@3 101 end
Asa@3 102
Asa@7 103 local function pairsByKeys (t, f)
Asa@7 104 local a = {}
Asa@7 105 for n in pairs(t) do table.insert(a, n) end
Asa@7 106 table.sort(a, f)
Asa@7 107 local i = 0 -- iterator variable
Asa@7 108 local iter = function () -- iterator function
Asa@7 109 i = i + 1
Asa@7 110 if a[i] == nil then return nil
Asa@7 111 else return a[i], t[a[i]]
Asa@7 112 end
Asa@7 113 end
Asa@7 114 return iter
Asa@7 115 end
Asa@7 116
Asa@13 117 function addon:GetAH()
Asa@13 118 return ItemAuditor.db.char.ah
Asa@13 119 end
Asa@13 120
Asa@13 121 function addon:SetAH(info, value)
Asa@13 122 ItemAuditor.db.char.ah = value
Asa@13 123 end
Asa@13 124
Asa@13 125 function addon:GetAHCut()
Asa@13 126 if ItemAuditor.db.char.ah == 1 then
Asa@13 127 return 0.05
Asa@13 128 end
Asa@13 129 return 0.15
Asa@13 130 end
Asa@13 131
Asa@13 132 function addon:GetAHFaction()
Asa@13 133 return AHFactions[ItemAuditor.db.char.ah]
Asa@13 134 end
Asa@13 135
Asa@3 136 function addon:DumpInfo()
Asa@7 137 for itemName, value in pairsByKeys(self.db.factionrealm.item_account) do
Asa@15 138 self:Print(itemName .. ": " .. self:FormatMoney(value))
Asa@7 139 end
Asa@3 140 end
Asa@3 141
Asa@7 142
Asa@3 143 function addon:ShowOptionsGUI()
Asa@3 144 InterfaceOptionsFrame_OpenToCategory(self.optionsFrame)
Asa@3 145 end
Asa@3 146
Asa@3 147