annotate ProspectMe_Config.lua @ 12:c5a66cdf45e2

Fix for a longstanding (and unnoticed... until now...) bug with interrupted attempts at milling.
author Geoff Brock <mischivin@gmail.com>
date Wed, 17 Aug 2016 13:51:13 -0400
parents dabd5c6540ca
children 4f5357900609
rev   line source
Vynn@2 1 if not PM_Config then
Vynn@2 2 PM_Config = {}
Vynn@2 3 end
Vynn@0 4
Vynn@0 5 local ProspectMeFrame = CreateFrame( "Frame", "PM_ConfigFrame", InterfaceOptionsFramePanelContainer)
Vynn@0 6 local Title = PM_ConfigFrame:CreateFontString( "ProspectMeTitle", nil, "GameFontNormalLarge")
Vynn@0 7 local ResultsToggle = CreateFrame( "CheckButton", "ProspectMeResultsToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" )
Vynn@0 8 local EpicToggle = CreateFrame( "CheckButton", "ProspectMeEpicToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" )
Vynn@0 9 local RareToggle = CreateFrame( "CheckButton", "ProspectMeRareToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" )
Vynn@0 10 local UncommonToggle = CreateFrame( "CheckButton", "ProspectMeUncommonToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" )
Vynn@0 11 local CommonToggle = CreateFrame( "CheckButton", "ProspectMeCommonToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" )
Vynn@0 12 local PoorToggle = CreateFrame( "CheckButton", "ProspectMePoorToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" )
Vynn@0 13 local SessionToggle = CreateFrame( "CheckButton", "ProspectMeSessionToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" )
Vynn@0 14 local PercentToggle = CreateFrame( "CheckButton", "ProspectMePercentToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" )
Vynn@0 15 local NumberToggle = CreateFrame( "CheckButton", "ProspectMeNumberToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" )
Vynn@0 16 local ResetResults = CreateFrame( "Button", "ProspectMeResetButton", ProspectMeFrame, "UIPanelButtonTemplate" )
Vynn@0 17 local ResetText = PM_ConfigFrame:CreateFontString( "ProspectMeResetText", nil, "GameFontNormal" )
Vynn@0 18
Vynn@0 19 local function SetDefaults()
Vynn@0 20 PM_Config.results = true
Vynn@0 21 PM_Config.qualities ={[0] = false,[1] = true, [2] = true, [3] = true, [4] = true}
Vynn@0 22 PM_Config.session = false
Vynn@0 23 PM_Config.percent = true
Vynn@0 24 PM_Config.number = true
Vynn@0 25 PM_Config.savedVariables = true
Vynn@0 26 end
Vynn@0 27
Vynn@0 28 local function SpewMessage(handle, msg)
Vynn@0 29 if handle == "loaded" then
Vynn@0 30 print(PM_LOADMSG)
Vynn@0 31 elseif handle == "help" then
Vynn@0 32 print(PM_HELPMSG)
Vynn@0 33 SpewMessage(PM_CONFIG, PM_CONFIGTOOLTIP)
Vynn@0 34 SpewMessage(PM_RESULTS, PM_RESULTSTOOLTIP)
Vynn@0 35 SpewMessage(PM_EPIC, PM_EPICTOOLTIP)
Vynn@0 36 SpewMessage(PM_RARE, PM_RARETOOLTIP)
Vynn@0 37 SpewMessage(PM_UNCOMMON, PM_UNCOMMONTOOLTIP)
Vynn@0 38 SpewMessage(PM_COMMON, PM_COMMONTOOLTIP)
Vynn@0 39 SpewMessage(PM_POOR, PM_POORTOOLTIP)
Vynn@0 40 SpewMessage(PM_SESSION, PM_SESSIONTOOLTIP)
Vynn@0 41 SpewMessage(PM_PERCENT, PM_PERCENTTOOLTIP)
Vynn@0 42 SpewMessage(PM_NUMBER, PM_NUMBERTOOLTIP)
Vynn@0 43 SpewMessage(PM_RESET, PM_RESETTOOLTIP)
Vynn@0 44 else
Vynn@0 45 print("|cFFFFCC00" .. handle .. "|r - " .. msg)
Vynn@0 46 end
Vynn@0 47 end
Vynn@0 48
Vynn@0 49 local function ClearEntry(id)
Vynn@0 50 if PM_ResultsTable[id] then
Vynn@0 51 wipe(PM_ResultsTable[id])
Vynn@0 52 end
Vynn@0 53 if PM_SessionTable[id] then
Vynn@0 54 wipe(PM_SessionTable[id])
Vynn@0 55 end
Vynn@0 56 end
Vynn@0 57
Vynn@0 58 local function ResetDatabase()
Vynn@0 59 for i, v in pairs(PM_ResultsTable) do
Vynn@0 60 ClearEntry(i)
Vynn@0 61 end
Vynn@0 62 wipe(PM_ResultsTable)
Vynn@0 63 wipe(PM_SessionTable)
Vynn@0 64 end
Vynn@0 65
Vynn@0 66 local function UpdateConfig()
Vynn@0 67
Vynn@0 68 PM_Config.results = ProspectMeResultsToggle:GetChecked()
Vynn@0 69 PM_Config.qualities[0] = ProspectMePoorToggle:GetChecked()
Vynn@0 70 PM_Config.qualities[1] = ProspectMeCommonToggle:GetChecked()
Vynn@0 71 PM_Config.qualities[2] = ProspectMeUncommonToggle:GetChecked()
Vynn@0 72 PM_Config.qualities[3] = ProspectMeRareToggle:GetChecked()
Vynn@0 73 PM_Config.qualities[4] = ProspectMeEpicToggle:GetChecked()
Vynn@0 74 PM_Config.session = ProspectMeSessionToggle:GetChecked()
Vynn@0 75 PM_Config.percent = ProspectMePercentToggle:GetChecked()
Vynn@0 76 PM_Config.number = ProspectMeNumberToggle:GetChecked()
Vynn@0 77
Vynn@0 78 if (PM_Config.results) then
Vynn@0 79
Vynn@0 80 ProspectMePoorToggle:Enable()
Vynn@0 81 ProspectMeCommonToggle:Enable()
Vynn@0 82 ProspectMeUncommonToggle:Enable()
Vynn@0 83 ProspectMeRareToggle:Enable()
Vynn@0 84 ProspectMeEpicToggle:Enable()
Vynn@0 85
Vynn@0 86 PM_Config.qualities[0] = ProspectMePoorToggle:GetChecked()
Vynn@0 87 PM_Config.qualities[1] = ProspectMeCommonToggle:GetChecked()
Vynn@0 88 PM_Config.qualities[2] = ProspectMeUncommonToggle:GetChecked()
Vynn@0 89 PM_Config.qualities[3] = ProspectMeRareToggle:GetChecked()
Vynn@0 90 PM_Config.qualities[4] = ProspectMeEpicToggle:GetChecked()
Vynn@0 91
Vynn@0 92 else
Vynn@0 93
Vynn@0 94 ProspectMePoorToggle:Disable()
Vynn@0 95 ProspectMeCommonToggle:Disable()
Vynn@0 96 ProspectMeUncommonToggle:Disable()
Vynn@0 97 ProspectMeRareToggle:Disable()
Vynn@0 98 ProspectMeEpicToggle:Disable()
Vynn@0 99
Vynn@0 100 end
Vynn@0 101 end
Vynn@0 102
Vynn@0 103 local function PM_ConfigInit()
Vynn@0 104 StaticPopupDialogs["PM_ConfirmReset"] = {
Vynn@0 105 text = PM_RESETWARNING,
Vynn@0 106 button1 = YES,
Vynn@0 107 button2 = NO,
Vynn@0 108 OnAccept = function()
Vynn@0 109 ResetDatabase()
Vynn@0 110 end,
Vynn@0 111 timeout = 30,
Vynn@0 112 whileDead = true,
Vynn@0 113 hideOnEscape = true,
Vynn@0 114 preferredIndex = 3,
Vynn@0 115 }
Vynn@0 116
Vynn@0 117 ProspectMeFrame.name = "Prospect Me"
Vynn@0 118
Vynn@0 119 ProspectMeTitle:SetPoint("TOP", 0, -16)
Vynn@0 120 ProspectMeTitle:SetText(GetAddOnMetadata("ProspectMe", "Title") .. " v" .. GetAddOnMetadata("ProspectMe", "Version"))
Vynn@0 121
Vynn@0 122 ProspectMeSessionToggle:SetPoint( "TOPLEFT", 32, -46 )
Vynn@0 123 ProspectMeSessionToggle:SetScript("OnClick", UpdateConfig)
Vynn@0 124 ProspectMeSessionToggle:SetChecked(PM_Config.session)
Vynn@0 125 ProspectMeSessionToggleText:SetText(PM_SESSIONTOGGLE)
Vynn@0 126 ProspectMeSessionToggle.tooltipText = PM_SESSIONTOOLTIP
Vynn@0 127
Vynn@0 128 ProspectMePercentToggle:SetPoint( "TOPLEFT", 32, -70 )
Vynn@0 129 ProspectMePercentToggle:SetScript("OnClick", UpdateConfig)
Vynn@0 130 ProspectMePercentToggle:SetChecked(PM_Config.percent)
Vynn@0 131 ProspectMePercentToggleText:SetText(PM_PERCENTTOGGLE)
Vynn@0 132 ProspectMePercentToggle.tooltipText = PM_PERCENTTOOLTIP
Vynn@0 133
Vynn@0 134 ProspectMeNumberToggle:SetPoint( "TOPLEFT", 32, -94 )
Vynn@0 135 ProspectMeNumberToggle:SetScript("OnClick", UpdateConfig)
Vynn@0 136 ProspectMeNumberToggle:SetChecked(PM_Config.number)
Vynn@0 137 ProspectMeNumberToggleText:SetText(PM_NUMBERTOGGLE)
Vynn@0 138 ProspectMeNumberToggle.tooltipText = PM_NUMBERTOOLTIP
Vynn@0 139
Vynn@0 140 ProspectMeResultsToggle:SetPoint( "TOPLEFT", 32, -118 )
Vynn@0 141 ProspectMeResultsToggle:SetScript("OnClick", UpdateConfig)
Vynn@0 142 ProspectMeResultsToggle:SetChecked(PM_Config.results)
Vynn@0 143 ProspectMeResultsToggleText:SetText(PM_RESULTSTOGGLE)
Vynn@0 144 ProspectMeResultsToggle.tooltipText = PM_RESULTSTOOLTIP
Vynn@0 145
Vynn@0 146 ProspectMeEpicToggle:SetPoint( "TOPLEFT", 60, -142 )
Vynn@0 147 ProspectMeEpicToggle:SetScript("OnClick", UpdateConfig)
Vynn@0 148 ProspectMeEpicToggle:SetChecked(PM_Config.qualities[4])
Vynn@0 149 ProspectMeEpicToggleText:SetText(PM_EPICTOGGLE)
Vynn@0 150 ProspectMeEpicToggle.tooltipText = PM_EPICTOOLTIP
Vynn@0 151
Vynn@0 152 ProspectMeRareToggle:SetPoint( "TOPLEFT", 60, -166 )
Vynn@0 153 ProspectMeRareToggle:SetScript("OnClick", UpdateConfig)
Vynn@0 154 ProspectMeRareToggle:SetChecked(PM_Config.qualities[3])
Vynn@0 155 ProspectMeRareToggleText:SetText(PM_RARETOGGLE)
Vynn@0 156 ProspectMeRareToggle.tooltipText = PM_RARETOOLTIP
Vynn@0 157
Vynn@0 158 ProspectMeUncommonToggle:SetPoint( "TOPLEFT", 60, -190 )
Vynn@0 159 ProspectMeUncommonToggle:SetScript("OnClick", UpdateConfig)
Vynn@0 160 ProspectMeUncommonToggle:SetChecked(PM_Config.qualities[2])
Vynn@0 161 ProspectMeUncommonToggleText:SetText(PM_UNCOMMONTOGGLE)
Vynn@0 162 ProspectMeUncommonToggle.tooltipText = PM_UNCOMMONTOOLTIP
Vynn@0 163
Vynn@0 164 ProspectMeCommonToggle:SetPoint( "TOPLEFT", 60, -214 )
Vynn@0 165 ProspectMeCommonToggle:SetScript("OnClick", UpdateConfig)
Vynn@0 166 ProspectMeCommonToggle:SetChecked(PM_Config.qualities[1])
Vynn@0 167 ProspectMeCommonToggleText:SetText(PM_COMMONTOGGLE)
Vynn@0 168 ProspectMeCommonToggle.tooltipText = PM_COMMONTOOLTIP
Vynn@0 169
Vynn@0 170 ProspectMePoorToggle:SetPoint( "TOPLEFT", 60, -238 )
Vynn@0 171 ProspectMePoorToggle:SetScript("OnClick", UpdateConfig)
Vynn@0 172 ProspectMePoorToggle:SetChecked(PM_Config.qualities[0])
Vynn@0 173 ProspectMePoorToggleText:SetText(PM_POORTOGGLE)
Vynn@0 174 ProspectMePoorToggle.tooltipText = PM_POORTOOLTIP
Vynn@0 175
Vynn@0 176 if (PM_Config.results == false) then
Vynn@0 177 ProspectMePoorToggle:Disable()
Vynn@0 178 ProspectMeCommonToggle:Disable()
Vynn@0 179 ProspectMeUncommonToggle:Disable()
Vynn@0 180 ProspectMeRareToggle:Disable()
Vynn@0 181 ProspectMeEpicToggle:Disable()
Vynn@0 182 end
Vynn@0 183
Vynn@0 184 ProspectMeResetButton:SetPoint("TOP", 0, -310 )
Vynn@0 185 ProspectMeResetButton:SetScript("OnClick", function(self) StaticPopup_Show("PM_ConfirmReset") end)
Vynn@0 186 ProspectMeResetButton:SetSize(250, 25)
Vynn@0 187 ProspectMeResetButton:SetText(PM_RESETBUTTON)
Vynn@0 188
Vynn@0 189 ProspectMeResetText:SetPoint("TOP", 0, -286)
Vynn@0 190 ProspectMeResetText:SetText(PM_RESETTOOLTIP)
Vynn@0 191
Vynn@0 192 InterfaceOptions_AddCategory(ProspectMeFrame)
Vynn@0 193
Vynn@0 194 end
Vynn@0 195
Vynn@0 196 function ProspectMeEventHandler(event, arg1)
Vynn@0 197 if (PM_Config.savedVariables) then
Vynn@0 198 PM_ConfigInit()
Vynn@0 199 else
Vynn@0 200 SetDefaults()
Vynn@0 201 PM_ConfigInit()
Vynn@0 202 end
Vynn@0 203 SpewMessage("loaded")
Vynn@0 204 end
Vynn@0 205
Vynn@0 206 function SlashCmdList.PROSPECTME(msg, editbox)
Vynn@0 207 if msg == PM_CONFIG then
Vynn@0 208 InterfaceOptionsFrame_OpenToCategory(ProspectMeFrame)
Vynn@0 209 elseif msg == PM_RESULTS then
Vynn@0 210 ProspectMeResultsToggle:SetChecked(not ProspectMeResultsToggle:GetChecked())
Vynn@0 211 UpdateConfig()
Vynn@0 212 elseif msg == PM_EPIC then
Vynn@0 213 ProspectMeEpicToggle:SetChecked(not ProspectMeEpicToggle:GetChecked())
Vynn@0 214 UpdateConfig()
Vynn@0 215 elseif msg == PM_RARE then
Vynn@0 216 ProspectMeRareToggle:SetChecked(not ProspectMeRareToggle:GetChecked())
Vynn@0 217 UpdateConfig()
Vynn@0 218 elseif msg == PM_UNCOMMON then
Vynn@0 219 ProspectMeUncommonToggle:SetChecked(not ProspectMeUncommonToggle:GetChecked())
Vynn@0 220 UpdateConfig()
Vynn@0 221 elseif msg == PM_COMMON then
Vynn@0 222 ProspectMeCommonToggle:SetChecked(not ProspectMeCommonToggle:GetChecked())
Vynn@0 223 UpdateConfig()
Vynn@0 224 elseif msg == PM_POOR then
Vynn@0 225 ProspectMePoorToggle:SetChecked(not ProspectMePoorToggle:GetChecked())
Vynn@0 226 UpdateConfig()
Vynn@0 227 elseif msg == PM_SESSION then
Vynn@0 228 ProspectMeSessionToggle:SetChecked(not ProspectMeSessionToggle:GetChecked())
Vynn@0 229 UpdateConfig()
Vynn@0 230 elseif msg == PM_PERCENT then
Vynn@0 231 ProspectMePercentToggle:SetChecked(not ProspectMePercentToggle:GetChecked())
Vynn@0 232 UpdateConfig()
Vynn@0 233 elseif msg == PM_NUMBER then
Vynn@0 234 ProspectMeNumberToggle:SetChecked(not ProspectMeNumberToggle:GetChecked())
Vynn@0 235 UpdateConfig()
Vynn@0 236 elseif msg == PM_RESET then
Vynn@0 237 StaticPopup_Show("PM_ConfirmReset")
Vynn@0 238 else
Vynn@0 239 SpewMessage("help")
Vynn@0 240 end
Vynn@0 241 end
Vynn@0 242
Vynn@0 243 ProspectMeFrame:RegisterEvent("VARIABLES_LOADED")
Vynn@0 244 ProspectMeFrame:SetScript("OnEvent", ProspectMeEventHandler)