Vynn@0: PM_Config = {} Vynn@0: Vynn@0: local ProspectMeFrame = CreateFrame( "Frame", "PM_ConfigFrame", InterfaceOptionsFramePanelContainer) Vynn@0: local Title = PM_ConfigFrame:CreateFontString( "ProspectMeTitle", nil, "GameFontNormalLarge") Vynn@0: local ResultsToggle = CreateFrame( "CheckButton", "ProspectMeResultsToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" ) Vynn@0: local EpicToggle = CreateFrame( "CheckButton", "ProspectMeEpicToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" ) Vynn@0: local RareToggle = CreateFrame( "CheckButton", "ProspectMeRareToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" ) Vynn@0: local UncommonToggle = CreateFrame( "CheckButton", "ProspectMeUncommonToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" ) Vynn@0: local CommonToggle = CreateFrame( "CheckButton", "ProspectMeCommonToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" ) Vynn@0: local PoorToggle = CreateFrame( "CheckButton", "ProspectMePoorToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" ) Vynn@0: local SessionToggle = CreateFrame( "CheckButton", "ProspectMeSessionToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" ) Vynn@0: local PercentToggle = CreateFrame( "CheckButton", "ProspectMePercentToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" ) Vynn@0: local NumberToggle = CreateFrame( "CheckButton", "ProspectMeNumberToggle", ProspectMeFrame, "InterfaceOptionsCheckButtonTemplate" ) Vynn@0: local ResetResults = CreateFrame( "Button", "ProspectMeResetButton", ProspectMeFrame, "UIPanelButtonTemplate" ) Vynn@0: local ResetText = PM_ConfigFrame:CreateFontString( "ProspectMeResetText", nil, "GameFontNormal" ) Vynn@0: Vynn@0: local function SetDefaults() Vynn@0: PM_Config.results = true Vynn@0: PM_Config.qualities ={[0] = false,[1] = true, [2] = true, [3] = true, [4] = true} Vynn@0: PM_Config.session = false Vynn@0: PM_Config.percent = true Vynn@0: PM_Config.number = true Vynn@0: PM_Config.savedVariables = true Vynn@0: end Vynn@0: Vynn@0: local function SpewMessage(handle, msg) Vynn@0: if handle == "loaded" then Vynn@0: print(PM_LOADMSG) Vynn@0: elseif handle == "help" then Vynn@0: print(PM_HELPMSG) Vynn@0: SpewMessage(PM_CONFIG, PM_CONFIGTOOLTIP) Vynn@0: SpewMessage(PM_RESULTS, PM_RESULTSTOOLTIP) Vynn@0: SpewMessage(PM_EPIC, PM_EPICTOOLTIP) Vynn@0: SpewMessage(PM_RARE, PM_RARETOOLTIP) Vynn@0: SpewMessage(PM_UNCOMMON, PM_UNCOMMONTOOLTIP) Vynn@0: SpewMessage(PM_COMMON, PM_COMMONTOOLTIP) Vynn@0: SpewMessage(PM_POOR, PM_POORTOOLTIP) Vynn@0: SpewMessage(PM_SESSION, PM_SESSIONTOOLTIP) Vynn@0: SpewMessage(PM_PERCENT, PM_PERCENTTOOLTIP) Vynn@0: SpewMessage(PM_NUMBER, PM_NUMBERTOOLTIP) Vynn@0: SpewMessage(PM_RESET, PM_RESETTOOLTIP) Vynn@0: else Vynn@0: print("|cFFFFCC00" .. handle .. "|r - " .. msg) Vynn@0: end Vynn@0: end Vynn@0: Vynn@0: local function ClearEntry(id) Vynn@0: if PM_ResultsTable[id] then Vynn@0: wipe(PM_ResultsTable[id]) Vynn@0: end Vynn@0: if PM_SessionTable[id] then Vynn@0: wipe(PM_SessionTable[id]) Vynn@0: end Vynn@0: end Vynn@0: Vynn@0: local function ResetDatabase() Vynn@0: for i, v in pairs(PM_ResultsTable) do Vynn@0: ClearEntry(i) Vynn@0: end Vynn@0: wipe(PM_ResultsTable) Vynn@0: wipe(PM_SessionTable) Vynn@0: end Vynn@0: Vynn@0: local function UpdateConfig() Vynn@0: Vynn@0: PM_Config.results = ProspectMeResultsToggle:GetChecked() Vynn@0: PM_Config.qualities[0] = ProspectMePoorToggle:GetChecked() Vynn@0: PM_Config.qualities[1] = ProspectMeCommonToggle:GetChecked() Vynn@0: PM_Config.qualities[2] = ProspectMeUncommonToggle:GetChecked() Vynn@0: PM_Config.qualities[3] = ProspectMeRareToggle:GetChecked() Vynn@0: PM_Config.qualities[4] = ProspectMeEpicToggle:GetChecked() Vynn@0: PM_Config.session = ProspectMeSessionToggle:GetChecked() Vynn@0: PM_Config.percent = ProspectMePercentToggle:GetChecked() Vynn@0: PM_Config.number = ProspectMeNumberToggle:GetChecked() Vynn@0: Vynn@0: if (PM_Config.results) then Vynn@0: Vynn@0: ProspectMePoorToggle:Enable() Vynn@0: ProspectMeCommonToggle:Enable() Vynn@0: ProspectMeUncommonToggle:Enable() Vynn@0: ProspectMeRareToggle:Enable() Vynn@0: ProspectMeEpicToggle:Enable() Vynn@0: Vynn@0: PM_Config.qualities[0] = ProspectMePoorToggle:GetChecked() Vynn@0: PM_Config.qualities[1] = ProspectMeCommonToggle:GetChecked() Vynn@0: PM_Config.qualities[2] = ProspectMeUncommonToggle:GetChecked() Vynn@0: PM_Config.qualities[3] = ProspectMeRareToggle:GetChecked() Vynn@0: PM_Config.qualities[4] = ProspectMeEpicToggle:GetChecked() Vynn@0: Vynn@0: else Vynn@0: Vynn@0: ProspectMePoorToggle:Disable() Vynn@0: ProspectMeCommonToggle:Disable() Vynn@0: ProspectMeUncommonToggle:Disable() Vynn@0: ProspectMeRareToggle:Disable() Vynn@0: ProspectMeEpicToggle:Disable() Vynn@0: Vynn@0: end Vynn@0: end Vynn@0: Vynn@0: local function PM_ConfigInit() Vynn@0: StaticPopupDialogs["PM_ConfirmReset"] = { Vynn@0: text = PM_RESETWARNING, Vynn@0: button1 = YES, Vynn@0: button2 = NO, Vynn@0: OnAccept = function() Vynn@0: ResetDatabase() Vynn@0: end, Vynn@0: timeout = 30, Vynn@0: whileDead = true, Vynn@0: hideOnEscape = true, Vynn@0: preferredIndex = 3, Vynn@0: } Vynn@0: Vynn@0: ProspectMeFrame.name = "Prospect Me" Vynn@0: Vynn@0: ProspectMeTitle:SetPoint("TOP", 0, -16) Vynn@0: ProspectMeTitle:SetText(GetAddOnMetadata("ProspectMe", "Title") .. " v" .. GetAddOnMetadata("ProspectMe", "Version")) Vynn@0: Vynn@0: ProspectMeSessionToggle:SetPoint( "TOPLEFT", 32, -46 ) Vynn@0: ProspectMeSessionToggle:SetScript("OnClick", UpdateConfig) Vynn@0: ProspectMeSessionToggle:SetChecked(PM_Config.session) Vynn@0: ProspectMeSessionToggleText:SetText(PM_SESSIONTOGGLE) Vynn@0: ProspectMeSessionToggle.tooltipText = PM_SESSIONTOOLTIP Vynn@0: Vynn@0: ProspectMePercentToggle:SetPoint( "TOPLEFT", 32, -70 ) Vynn@0: ProspectMePercentToggle:SetScript("OnClick", UpdateConfig) Vynn@0: ProspectMePercentToggle:SetChecked(PM_Config.percent) Vynn@0: ProspectMePercentToggleText:SetText(PM_PERCENTTOGGLE) Vynn@0: ProspectMePercentToggle.tooltipText = PM_PERCENTTOOLTIP Vynn@0: Vynn@0: ProspectMeNumberToggle:SetPoint( "TOPLEFT", 32, -94 ) Vynn@0: ProspectMeNumberToggle:SetScript("OnClick", UpdateConfig) Vynn@0: ProspectMeNumberToggle:SetChecked(PM_Config.number) Vynn@0: ProspectMeNumberToggleText:SetText(PM_NUMBERTOGGLE) Vynn@0: ProspectMeNumberToggle.tooltipText = PM_NUMBERTOOLTIP Vynn@0: Vynn@0: ProspectMeResultsToggle:SetPoint( "TOPLEFT", 32, -118 ) Vynn@0: ProspectMeResultsToggle:SetScript("OnClick", UpdateConfig) Vynn@0: ProspectMeResultsToggle:SetChecked(PM_Config.results) Vynn@0: ProspectMeResultsToggleText:SetText(PM_RESULTSTOGGLE) Vynn@0: ProspectMeResultsToggle.tooltipText = PM_RESULTSTOOLTIP Vynn@0: Vynn@0: ProspectMeEpicToggle:SetPoint( "TOPLEFT", 60, -142 ) Vynn@0: ProspectMeEpicToggle:SetScript("OnClick", UpdateConfig) Vynn@0: ProspectMeEpicToggle:SetChecked(PM_Config.qualities[4]) Vynn@0: ProspectMeEpicToggleText:SetText(PM_EPICTOGGLE) Vynn@0: ProspectMeEpicToggle.tooltipText = PM_EPICTOOLTIP Vynn@0: Vynn@0: ProspectMeRareToggle:SetPoint( "TOPLEFT", 60, -166 ) Vynn@0: ProspectMeRareToggle:SetScript("OnClick", UpdateConfig) Vynn@0: ProspectMeRareToggle:SetChecked(PM_Config.qualities[3]) Vynn@0: ProspectMeRareToggleText:SetText(PM_RARETOGGLE) Vynn@0: ProspectMeRareToggle.tooltipText = PM_RARETOOLTIP Vynn@0: Vynn@0: ProspectMeUncommonToggle:SetPoint( "TOPLEFT", 60, -190 ) Vynn@0: ProspectMeUncommonToggle:SetScript("OnClick", UpdateConfig) Vynn@0: ProspectMeUncommonToggle:SetChecked(PM_Config.qualities[2]) Vynn@0: ProspectMeUncommonToggleText:SetText(PM_UNCOMMONTOGGLE) Vynn@0: ProspectMeUncommonToggle.tooltipText = PM_UNCOMMONTOOLTIP Vynn@0: Vynn@0: ProspectMeCommonToggle:SetPoint( "TOPLEFT", 60, -214 ) Vynn@0: ProspectMeCommonToggle:SetScript("OnClick", UpdateConfig) Vynn@0: ProspectMeCommonToggle:SetChecked(PM_Config.qualities[1]) Vynn@0: ProspectMeCommonToggleText:SetText(PM_COMMONTOGGLE) Vynn@0: ProspectMeCommonToggle.tooltipText = PM_COMMONTOOLTIP Vynn@0: Vynn@0: ProspectMePoorToggle:SetPoint( "TOPLEFT", 60, -238 ) Vynn@0: ProspectMePoorToggle:SetScript("OnClick", UpdateConfig) Vynn@0: ProspectMePoorToggle:SetChecked(PM_Config.qualities[0]) Vynn@0: ProspectMePoorToggleText:SetText(PM_POORTOGGLE) Vynn@0: ProspectMePoorToggle.tooltipText = PM_POORTOOLTIP Vynn@0: Vynn@0: if (PM_Config.results == false) then Vynn@0: ProspectMePoorToggle:Disable() Vynn@0: ProspectMeCommonToggle:Disable() Vynn@0: ProspectMeUncommonToggle:Disable() Vynn@0: ProspectMeRareToggle:Disable() Vynn@0: ProspectMeEpicToggle:Disable() Vynn@0: end Vynn@0: Vynn@0: ProspectMeResetButton:SetPoint("TOP", 0, -310 ) Vynn@0: ProspectMeResetButton:SetScript("OnClick", function(self) StaticPopup_Show("PM_ConfirmReset") end) Vynn@0: ProspectMeResetButton:SetSize(250, 25) Vynn@0: ProspectMeResetButton:SetText(PM_RESETBUTTON) Vynn@0: Vynn@0: ProspectMeResetText:SetPoint("TOP", 0, -286) Vynn@0: ProspectMeResetText:SetText(PM_RESETTOOLTIP) Vynn@0: Vynn@0: InterfaceOptions_AddCategory(ProspectMeFrame) Vynn@0: Vynn@0: end Vynn@0: Vynn@0: function ProspectMeEventHandler(event, arg1) Vynn@0: if (PM_Config.savedVariables) then Vynn@0: PM_ConfigInit() Vynn@0: else Vynn@0: SetDefaults() Vynn@0: PM_ConfigInit() Vynn@0: end Vynn@0: SpewMessage("loaded") Vynn@0: end Vynn@0: Vynn@0: function SlashCmdList.PROSPECTME(msg, editbox) Vynn@0: if msg == PM_CONFIG then Vynn@0: InterfaceOptionsFrame_OpenToCategory(ProspectMeFrame) Vynn@0: elseif msg == PM_RESULTS then Vynn@0: ProspectMeResultsToggle:SetChecked(not ProspectMeResultsToggle:GetChecked()) Vynn@0: UpdateConfig() Vynn@0: elseif msg == PM_EPIC then Vynn@0: ProspectMeEpicToggle:SetChecked(not ProspectMeEpicToggle:GetChecked()) Vynn@0: UpdateConfig() Vynn@0: elseif msg == PM_RARE then Vynn@0: ProspectMeRareToggle:SetChecked(not ProspectMeRareToggle:GetChecked()) Vynn@0: UpdateConfig() Vynn@0: elseif msg == PM_UNCOMMON then Vynn@0: ProspectMeUncommonToggle:SetChecked(not ProspectMeUncommonToggle:GetChecked()) Vynn@0: UpdateConfig() Vynn@0: elseif msg == PM_COMMON then Vynn@0: ProspectMeCommonToggle:SetChecked(not ProspectMeCommonToggle:GetChecked()) Vynn@0: UpdateConfig() Vynn@0: elseif msg == PM_POOR then Vynn@0: ProspectMePoorToggle:SetChecked(not ProspectMePoorToggle:GetChecked()) Vynn@0: UpdateConfig() Vynn@0: elseif msg == PM_SESSION then Vynn@0: ProspectMeSessionToggle:SetChecked(not ProspectMeSessionToggle:GetChecked()) Vynn@0: UpdateConfig() Vynn@0: elseif msg == PM_PERCENT then Vynn@0: ProspectMePercentToggle:SetChecked(not ProspectMePercentToggle:GetChecked()) Vynn@0: UpdateConfig() Vynn@0: elseif msg == PM_NUMBER then Vynn@0: ProspectMeNumberToggle:SetChecked(not ProspectMeNumberToggle:GetChecked()) Vynn@0: UpdateConfig() Vynn@0: elseif msg == PM_RESET then Vynn@0: StaticPopup_Show("PM_ConfirmReset") Vynn@0: else Vynn@0: SpewMessage("help") Vynn@0: end Vynn@0: end Vynn@0: Vynn@0: ProspectMeFrame:RegisterEvent("VARIABLES_LOADED") Vynn@0: ProspectMeFrame:SetScript("OnEvent", ProspectMeEventHandler)