annotate Modules/Options.lua @ 18:c7b3585c73df

Added the missing QuickAuctions module. I've also added integration with Skillet and LilSparkysWorkshop. IA and queue any item set up in QuickAuctions where the reagent cost is less than the current price of the item. This is based on KevTool Queue.
author Asa Ayers <Asa.Ayers@Gmail.com>
date Sat, 03 Jul 2010 14:53:27 -0700
parents 56de19d9bd8d
children ff9a698caebc
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@18 95 queue = {
Asa@18 96 type = "execute",
Asa@18 97 name = "queue",
Asa@18 98 desc = "Queue",
Asa@18 99 func = "Queue",
Asa@18 100 guiHidden = true,
Asa@18 101 },
Asa@18 102
Asa@18 103
Asa@3 104 },
Asa@3 105 }
Asa@3 106
Asa@3 107 function addon:RegisterOptions()
Asa@3 108 self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ItemAuditor", "ItemAuditor")
Asa@3 109 LibStub("AceConfig-3.0"):RegisterOptionsTable("ItemAuditor", options, {"ia"})
Asa@3 110 end
Asa@3 111
Asa@7 112 local function pairsByKeys (t, f)
Asa@7 113 local a = {}
Asa@7 114 for n in pairs(t) do table.insert(a, n) end
Asa@7 115 table.sort(a, f)
Asa@7 116 local i = 0 -- iterator variable
Asa@7 117 local iter = function () -- iterator function
Asa@7 118 i = i + 1
Asa@7 119 if a[i] == nil then return nil
Asa@7 120 else return a[i], t[a[i]]
Asa@7 121 end
Asa@7 122 end
Asa@7 123 return iter
Asa@7 124 end
Asa@7 125
Asa@13 126 function addon:GetAH()
Asa@13 127 return ItemAuditor.db.char.ah
Asa@13 128 end
Asa@13 129
Asa@13 130 function addon:SetAH(info, value)
Asa@13 131 ItemAuditor.db.char.ah = value
Asa@13 132 end
Asa@13 133
Asa@13 134 function addon:GetAHCut()
Asa@13 135 if ItemAuditor.db.char.ah == 1 then
Asa@13 136 return 0.05
Asa@13 137 end
Asa@13 138 return 0.15
Asa@13 139 end
Asa@13 140
Asa@13 141 function addon:GetAHFaction()
Asa@13 142 return AHFactions[ItemAuditor.db.char.ah]
Asa@13 143 end
Asa@13 144
Asa@3 145 function addon:DumpInfo()
Asa@7 146 for itemName, value in pairsByKeys(self.db.factionrealm.item_account) do
Asa@15 147 self:Print(itemName .. ": " .. self:FormatMoney(value))
Asa@7 148 end
Asa@3 149 end
Asa@3 150
Asa@7 151
Asa@3 152 function addon:ShowOptionsGUI()
Asa@3 153 InterfaceOptionsFrame_OpenToCategory(self.optionsFrame)
Asa@3 154 end
Asa@3 155
Asa@3 156