--[[ Questionably Epic Mythic+ Dungeon Tips Configuration Page Version: 4.8 Developed by: Voulk Contact: Discord: Voulk#1858 Email: itsvoulk@gmail.com ]]-- local _, addon = ...; -- UI QEConf = {} --local ACD = LibStub("MSA-AceConfigDialog-3.0") local function RGBToHex(r, g, b) r = r <= 1 and r >= 0 and r or 0 g = g <= 1 and g >= 0 and g or 0 b = b <= 1 and b >= 0 and b or 0 return string.format("%02x%02x%02x", r*255, g*255, b*255) end -- Saved Variables QEConfig = { ["Important"] = true, ["PriorityTargets"] = true, ["Defensives"] = true, ["Interrupts"] = true, ["Fluff"] = false, ["Advanced"] = true, ["Dodge"] = true, ["RoleChoice"] = "Show my role only", ["ClassChoice"] = "Show my class only", ["ShowFrame"] = "Show in separate frame", ["TargetTrigger"] = "Show targeted mob", ["RaidToggle"] = true, ["MythicPlusToggle"] = true, ["FrameWidth"] = 450, ["FrameHeight"] = 175, ["FontSize"] = 12, ["FrameOpacity"] = 0.55 } QEHallOfFameRR = {"== Rolls Royce ==", "Jaycob-Saurfang", "Lightwrath-Whisperwind", "Zikihra-Blackmoore", "Splenduus", "Meddah-Proudmoore", "Csinál-Dragonmaw", "Hastefreak-TwistingNether", "Vicnoia-Icewind Point", "Tízoc EU-Mal´Ganis", "Cuddlybruce Argent Dawn", "Katurn - Frostmourne", "chewbaccas-Drakkari", "Ðumplings Norgannon"} QEHallOfFameDiamond = {"== Diamond ==", "Eluminati-Hyjal", "Zaalía-Area52", "Arkadas-Proudmoore", "Nollysham-Stormrage", "Knowledge-Sargeras", "Alloxa-Kazzak", "Surrge-Stonemaul", "Squishses-Proudmoore", "Alfyhar-Zuljin", "Nesuni", "Amnyth", "Prucewayne-Illidan", "Zenashi", "Aristeia-Eredar", "Jinzhra-Draenor", "Herbalsjr-stormrage", "Bejeweled", "Manatide-TheMaelstrom", "Janae-Stormrage", "Ådelyn-TwistingNether", "Tizianah", "Seedmoon-Silvermoon", "Gingersnapmd Area52", "Affrodite-Argent Dawn", "Baradeth-Stormreaver", "Moonrabbit-Sargeras", "Squidkid", "Nyrde-Draenor"} QEHallOfFameGold = {"== Gold ==", "Treeahje-Stormrage", "Divinitee-Argent Dawn", "Оссуми-Гордунни" } local function addPatronSet(array, color, frame) local arraySize = 0 for i, patron in ipairs(array) do local lineHex = color local tipBase = frame:GetText() local endOfLine = " " if i % 3 == 0 then --endOfLine = "\n" end frame:SetText(tipBase .. "|cff" .. lineHex .. " " .. patron .. "|r" .. endOfLine .. "\n") arraySize = arraySize + 1 end if arraySize % 3 ~= 0 then frame:SetText(frame:GetText() .. "\n") end end -- Create Checkboxes local function createCheck(label, description, frame, onClick) local check = CreateFrame("CheckButton", "QECheck" .. label, frame, "InterfaceOptionsCheckButtonTemplate") check:SetScript("OnClick", function(self) onClick(self) end) getglobal(check:GetName() .. 'Text'):SetText(description) return check end local function createString(frame, text, font, size) local fontString = frame:CreateFontString() fontString:SetFont(font, size) fontString:SetText(text) fontString:SetWidth(215) fontString:SetJustifyH("LEFT") fontString:SetJustifyV("TOP") return fontString end local function updateTextSize(size) local p,_,_ = QE_TipText:GetFont(); --print("Resetting Font Size" .. QEConfig.FontSize) QE_TipText:SetFont(p, QEConfig.FontSize, nil) end --[[ function createDropdown(frame, label, option1, option2, changingVar) local dd = CreateFrame("Frame", label, frame, "UIDropDownMenuTemplate") local function dd_OnClick(self, arg1, arg2, checked) UIDropDownMenu_SetText(dd, arg1) QEConfig[changingVar] = arg1 setEnabled() -- This just clears the addons frame. setDropdownEnabled() -- This shows / hides a second dropdown based on the current selection. end function ddMenu(frame, level, menuList) local info = UIDropDownMenu_CreateInfo() info.func = dd_OnClick info.text, info.arg1, info.checked = option1, option1, QEConfig[changingVar] == option1 UIDropDownMenu_AddButton(info) info.text, info.arg1, info.checked = option2, option2, QEConfig[changingVar] == option2 UIDropDownMenu_AddButton(info) end UIDropDownMenu_Initialize(dd, ddMenu) UIDropDownMenu_SetWidth(dd, 180, 0); return dd end ]]-- local function createNewConfigMenu() local frame = CreateFrame("Frame", "QEConfiguration", UIParent) local background = frame:CreateTexture() background:SetAllPoints(frame) background:SetColorTexture(0.1, 0.1, 0.1, 0.5) -- Set up Title -- local ddTitleString = frame:CreateFontString() ddTitleString:SetPoint("TOPLEFT", 10, -10) ddTitleString:SetFont("Fonts\\MORPHEUS.ttf", 22, "OUTLINE") ddTitleString:SetTextColor(0.9, 0.68, 0.22, 1) ddTitleString:SetText("QE Mythic+ Dungeon Tips - Config") local chkGeneral = createCheck("General", "Show Important General Information", frame, function(self, value) end) chkGeneral:SetPoint("TOPLEFT", ddTitleString, "BOTTOMLEFT", 0, -10) chkGeneral:SetEnabled(false) chkGeneral:SetChecked(true) local chkPriority = createCheck("PriorityTargets", "Show Priority Targets", frame, function(self, value) QEConfig.PriorityTargets = self:GetChecked() end) chkPriority:SetPoint("TOPLEFT", chkGeneral, "BOTTOMLEFT", 0, -8) local chkInterrupts = createCheck("Interrupts", "Show Priority Interrupts", frame, function(self, value) QEConfig.Interrupts = self:GetChecked() end) chkInterrupts:SetPoint("TOPLEFT", chkPriority, "BOTTOMLEFT", 0, -8) local chkDefensives = createCheck("Defensives", "Show Defensive Recommendations", frame, function(self, value) QEConfig.Defensives = self:GetChecked() end) chkDefensives:SetPoint("TOPLEFT", chkInterrupts, "BOTTOMLEFT", 0, -8) local chkFluff = createCheck("Fluff", "Show Fluff", frame, function(self, value) QEConfig.Fluff = self:GetChecked() end) chkFluff:SetPoint("TOPLEFT", chkDefensives, "BOTTOMLEFT", 0, -8) local chkAdvanced = createCheck("Advanced", "Show advanced tips for high level keys", frame, function(self, value) QEConfig.Advanced = self:GetChecked() end) chkAdvanced:SetPoint("TOPLEFT", chkFluff, "BOTTOMLEFT", 0, -8) ---------------------------- -- Setup "Dropdown" boxes -- ---------------------------- -- Dropdown Taint Sucks local headerFont = "Fonts\\MORPHEUS.ttf" local headerSize = 16 -- Tip Location Selector -- local locFS = createString(frame, "Tip Location", headerFont, headerSize) locFS:SetPoint("TOPLEFT", chkAdvanced, "BOTTOMLEFT", 0, -30) --locDD = createDropdown(addon.configPanel, "TipLocation", "Show in separate frame", "Show in mob tooltips", "ShowFrame") --locDD:SetPoint("TOPLEFT", locFS, "BOTTOMLEFT", 0, -8) local locCB = createCheck("Location", "Show tips in separate frame", frame, function(self, value) if self:GetChecked() then QEConfig.ShowFrame = "Show in separate frame" else QEConfig.ShowFrame = "Show in mob tooltips" end addon:setEnabled() -- This just clears the addons frame. --addon:setMinimized(true) -- Ensures the tip frame is showing. addon:setDropdownEnabled() -- This shows / hides a second dropdown based on the current selection. end) locCB.tooltip = "Uncheck to have tips appear in mob tooltips instead" locCB:SetPoint("TOPLEFT", locFS, "BOTTOMLEFT", 0, -8) -- Target / Mouseover Selector -- addon.targetFS = createString(frame, "Show Target or Mouseover", headerFont, headerSize) addon.targetFS:SetPoint("TOPLEFT", locFS, "TOPRIGHT", 70, 0) --targetDD = createDropdown(addon.configPanel, "TargetMouseover", "Show targeted mob", "Show mouseover", "TargetTrigger") --targetDD:SetPoint("TOPLEFT", targetFS, "BOTTOMLEFT", 0, -8) addon.chkTarget = createCheck("Target", "Show Targeted Mob", frame, function(self, value) if self:GetChecked() then QEConfig.TargetTrigger = "Show targeted mob" else QEConfig.TargetTrigger = "Show mouseover" end end) addon.chkTarget:SetPoint("TOPLEFT", addon.targetFS, "BOTTOMLEFT", 0, -8) -- Role Selector -- local roleFS = createString(frame, "Role Specific Tips", headerFont, headerSize) roleFS:SetPoint("TOPLEFT", locCB, "BOTTOMLEFT", 0, -14) --roleDD = createDropdown(addon.configPanel, "RoleSelector", "Show my role only", "Show all roles", "RoleChoice") --roleDD:SetPoint("TOPLEFT", roleFS, "BOTTOMLEFT", 0, -8) local chkRole = createCheck("Role", "Show all roles", frame, function(self, value) if self:GetChecked() then QEConfig.RoleChoice = "Show all roles" else QEConfig.RoleChoice = "Show my role only" end end) chkRole:SetPoint("TOPLEFT", roleFS, "BOTTOMLEFT", 0, -8) -- Class Selector -- local classFS = createString(frame, "Class Specific Tips", headerFont, headerSize) classFS:SetPoint("TOPLEFT", roleFS, "TOPRIGHT", 70, 0) --classDD = createDropdown(addon.configPanel, "ClassSelector", "Show my class only", "Show all classes", "ClassChoice") --classDD:SetPoint("TOPLEFT", classFS, "BOTTOMLEFT", 0, -8) local chkClass = createCheck("Class", "Show all classes", frame, function(self, value) if self:GetChecked() then QEConfig.ClassChoice = "Show all classes" else QEConfig.ClassChoice = "Show my class only" end end) chkClass:SetPoint("TOPLEFT", classFS, "BOTTOMLEFT", 0, -8) -- Other Stuff local OtherFS = createString(frame, "Font Size", headerFont, headerSize) OtherFS:SetPoint("TOPLEFT", classFS, "BOTTOMLEFT", 0, -54) --local deleteme = createString(addon.configPanel, "Delete me after", headerFont, headerSize) --deleteme:SetPoint("TOPLEFT", OtherFS, "BOTTOMLEFT", 0, -16) local sliderName = "FontSizeS" local fontEdit = CreateFrame("Slider", sliderName, frame, "OptionsSliderTemplate") fontEdit:SetWidth(120) fontEdit:SetHeight(20) fontEdit:SetOrientation('HORIZONTAL') fontEdit:SetMinMaxValues(8, 18) fontEdit:SetValue(QEConfig.FontSize) fontEdit:SetValueStep(1) fontEdit.textLow = _G[sliderName.."Low"] fontEdit.textHigh = _G[sliderName.."High"] fontEdit.text = _G[sliderName.."Text"] fontEdit.minValue, fontEdit.maxValue = fontEdit:GetMinMaxValues() fontEdit.textLow:SetText(fontEdit.minValue) fontEdit.textHigh:SetText(fontEdit.maxValue) fontEdit.text:SetText(QEConfig.FontSize) fontEdit.textLow = 8 fontEdit.textHigh = 14 --fontEdit.text = "Font Size" fontEdit:SetPoint("TOPLEFT", OtherFS, "BOTTOMLEFT", 0, -22) fontEdit:Enable() fontEdit:SetScript("OnValueChanged", function(self,event,arg1) QEConfig.FontSize = math.floor(event + 0.5) updateTextSize() --print(QEConfig.FontSize) self.text:SetText(QEConfig.FontSize) end) ------------------ -- Hall of Fame -- ------------------ local hofFrame = CreateFrame("Frame", "HoFFrame", UIParent) hofFrame:SetHeight(580) hofFrame:SetWidth(580) hofFrame:SetPoint("CENTER") hofFrame.tex = hofFrame:CreateTexture() hofFrame.tex:SetAllPoints(hofFrame) hofFrame.tex:SetColorTexture(62/255, 59/255, 55/255, 0.75) hofFrame:SetFrameLevel(8) hofFrame:Hide() local hofClose = CreateFrame("Button", "HoFClose", hofFrame, "UIPanelButtonTemplate") hofClose:SetSize(25, 25) hofClose:SetFrameLevel(9) hofClose:ClearAllPoints() hofClose:SetNormalTexture("Interface\\Buttons\\CancelButton-Up") --hofClose:SetHighlightTexture("Interface\\Buttons\\CancelButton-Up", 1.0) hofClose:SetAlpha(0.85) hofClose:SetPoint("TOPRIGHT", hofFrame, "TOPRIGHT", 0, 0) hofClose:SetScript("OnClick", function() hofFrame:Raise() hofFrame:Hide() end) -- Config Header Text headerHof = hofFrame:CreateFontString("QE_HeaderText", nil, nil) headerHof:SetPoint("TOPLEFT", 5, -4) headerHof:SetPoint("TOPRIGHT", 5, -4) headerHof:SetFont("Fonts\\SKURRI.TTF", 16, "OUTLINE") --headerHof:SetTextColor(239/255, 191/255, 90/255) headerHof:SetJustifyH("CENTER") headerHof:SetJustifyV("CENTER") headerHof:SetText("Questionably Epic Hall of Fame") headerHof:SetWordWrap(true) local hofButton = CreateFrame("Button", "HoFBtn", frame, "UIPanelButtonTemplate") hofButton:SetSize(140, 27) hofButton:SetText("QE Hall of Fame") hofButton:SetPoint("TopLeft", chkRole, "BOTTOMLEFT", 2, -22) hofButton:SetScript("OnClick", function() hofFrame:Show() --InterfaceOptionsFrame:Hide() --SettingsPanel:Hide() --HideUIPanel(GameMenuFrame) end) local RRText = hofFrame:CreateFontString("RRText", nil, nil) RRText:SetPoint("TOPLEFT", 5, -44) RRText:SetPoint("TOPRIGHT", 5, -44) RRText:SetWordWrap(true) RRText:SetFont("Fonts\\SKURRI.TTF", 18, "OUTLINE") RRText:SetJustifyH("CENTER") RRText:SetJustifyV("TOP") RRText:SetText("QE Patrons") local thankyou = hofFrame:CreateFontString("RRThanks", nil, nil) thankyou:SetPoint("TOPLEFT", 5, -65) thankyou:SetPoint("TOPRIGHT", 5, -65) thankyou:SetWordWrap(true) thankyou:SetFont("Fonts\\SKURRI.TTF", 18, "OUTLINE") thankyou:SetJustifyH("CENTER") thankyou:SetJustifyV("TOP") thankyou:SetText("Thank you so much for your support!") local QE_hofText = hofFrame:CreateFontString("RRPatrons", nil, nil) QE_hofText:SetPoint("TOPLEFT", "RRText", "BOTTOMLEFT", 5, -25) QE_hofText:SetPoint("TOPRIGHT", "RRText", "BOTTOMRIGHT", 5, -25) QE_hofText:SetWordWrap(true) QE_hofText:SetFont("Fonts\\ARIALN.ttf", 16, "OUTLINE") --QE_hofText:SetTextColor(1, 0, 0) QE_hofText:SetJustifyH("LEFT") QE_hofText:SetJustifyV("TOP") QE_hofText:SetText(" ") local QE_hofText2 = hofFrame:CreateFontString("RRPatrons", nil, nil) QE_hofText2:SetPoint("TOPLEFT", "RRText", "BOTTOMLEFT", 5, -25) QE_hofText2:SetPoint("TOPRIGHT", "RRText", "BOTTOMRIGHT", 5, -25) QE_hofText2:SetWordWrap(true) QE_hofText2:SetFont("Fonts\\ARIALN.ttf", 16, "OUTLINE") --QE_hofText2:SetTextColor(255, 0, 0, 255) QE_hofText2:SetJustifyH("CENTER") QE_hofText2:SetJustifyV("TOP") QE_hofText2:SetText(" ") local QE_hofText3 = hofFrame:CreateFontString("RRPatrons", nil, nil) QE_hofText3:SetPoint("TOPLEFT", "RRText", "BOTTOMLEFT", 5, -25) QE_hofText3:SetPoint("TOPRIGHT", "RRText", "BOTTOMRIGHT", 5, -25) QE_hofText3:SetWordWrap(true) QE_hofText3:SetFont("Fonts\\ARIALN.ttf", 16, "OUTLINE") --QE_hofText3:SetTextColor(255, 0, 0, 255) QE_hofText3:SetJustifyH("RIGHT") QE_hofText3:SetJustifyV("TOP") QE_hofText3:SetText(" ") addPatronSet(QEHallOfFameRR, RGBToHex(0, 1, 150/255), QE_hofText) addPatronSet(QEHallOfFameDiamond, RGBToHex(228/255, 35/255, 157/255), QE_hofText2) addPatronSet(QEHallOfFameGold, RGBToHex(207/255, 181/255, 59/255), QE_hofText3) -- Load in SavedVariables on ADDON_LOADED frame:RegisterEvent("ADDON_LOADED") frame:SetScript("OnEvent", function(self, event, arg1) if event == "ADDON_LOADED" then -- Check for new variables added in a later release QEConfig.ShowFrame = QEConfig.ShowFrame or "Show in separate frame" QEConfig.TargetTrigger = QEConfig.TargetTrigger or "Show targeted mob" -- More variables added in a later release if QEConfig.RaidToggle == nil then QEConfig.RaidToggle = true end if QEConfig.MythicPlusToggle == nil then QEConfig.MythicPlusToggle = true end QEConfig.FrameOpacity = QEConfig.FrameOpacity or 0.55 QEConfig.FrameWidth = QEConfig.FrameWidth or 450 QEConfig.FrameHeight = QEConfig.FrameHeight or 175 QEConfig.FontSize = QEConfig.FontSize or 14 --print(QEConfig.FontSize) -- Set default checkbox behaviour chkPriority:SetChecked(QEConfig.PriorityTargets) chkInterrupts:SetChecked(QEConfig.Interrupts) chkDefensives:SetChecked(QEConfig.Defensives) chkFluff:SetChecked(QEConfig.Fluff) chkAdvanced:SetChecked(QEConfig.Advanced) --chkMythicPlus:SetChecked(QEConfig.MythicPlusToggle) --chkRaid:SetChecked(QEConfig.RaidToggle) -- Set default Drop Down text --UIDropDownMenu_SetText(locDD, QEConfig.ShowFrame) --UIDropDownMenu_SetText(targetDD, QEConfig.TargetTrigger) --UIDropDownMenu_SetText(roleDD, QEConfig.RoleChoice) --UIDropDownMenu_SetText(classDD, QEConfig.ClassChoice) -- "Drop downs" locCB:SetChecked(QEConfig.ShowFrame == "Show in separate frame") addon.chkTarget:SetChecked(QEConfig.TargetTrigger == "Show targeted mob") chkRole:SetChecked(QEConfig.RoleChoice == "Show all roles") chkClass:SetChecked(QEConfig.ClassChoice == "Show all classes") updateTextSize() fontEdit.text:SetText(QEConfig.FontSize) fontEdit:SetValue(QEConfig.FontSize) addon:setEnabled() addon:setDropdownEnabled() end end); -- Proceed createQEFrame() -- local category = Settings.RegisterCanvasLayoutCategory(frame, "QE Dungeon Tips") Settings.RegisterAddOnCategory(category) end -- Create Panels local function createConfigMenu() -- Setup Panel -- addon.configPanel = CreateFrame("Frame", "QEConfiguration", UIParent) addon.configPanel.name = "QE Mythic+ Dungeon Tips"; addon.configPanel.okay = function (self) return end addon.configPanel.cancel = function (self) return end -- Set up Title -- local ddTitleString = addon.configPanel:CreateFontString() ddTitleString:SetPoint("TOPLEFT", 10, -10) ddTitleString:SetFont("Fonts\\MORPHEUS.ttf", 22, "OUTLINE") ddTitleString:SetTextColor(0.9, 0.68, 0.22, 1) ddTitleString:SetText("QE Mythic+ Dungeon Tips - Config") ----------------------- -- Set up Checkboxes -- ----------------------- local chkGeneral = createCheck("General", "Show Important General Information", addon.configPanel, function(self, value) end) chkGeneral:SetPoint("TOPLEFT", ddTitleString, "BOTTOMLEFT", 0, -10) chkGeneral:SetEnabled(false) chkGeneral:SetChecked(true) print(QEConfig) local chkPriority = createCheck("PriorityTargets", "Show Priority Targets", addon.configPanel, function(self, value) QEConfig.PriorityTargets = self:GetChecked() end) chkPriority:SetPoint("TOPLEFT", chkGeneral, "BOTTOMLEFT", 0, -8) local chkInterrupts = createCheck("Interrupts", "Show Priority Interrupts", addon.configPanel, function(self, value) QEConfig.Interrupts = self:GetChecked() end) chkInterrupts:SetPoint("TOPLEFT", chkPriority, "BOTTOMLEFT", 0, -8) local chkDefensives = createCheck("Defensives", "Show Defensive Recommendations", addon.configPanel, function(self, value) QEConfig.Defensives = self:GetChecked() end) chkDefensives:SetPoint("TOPLEFT", chkInterrupts, "BOTTOMLEFT", 0, -8) local chkFluff = createCheck("Fluff", "Show Fluff", addon.configPanel, function(self, value) QEConfig.Fluff = self:GetChecked() end) chkFluff:SetPoint("TOPLEFT", chkDefensives, "BOTTOMLEFT", 0, -8) local chkAdvanced = createCheck("Advanced", "Show advanced tips for high level keys", addon.configPanel, function(self, value) QEConfig.Advanced = self:GetChecked() end) chkAdvanced:SetPoint("TOPLEFT", chkFluff, "BOTTOMLEFT", 0, -8) ---------------------------- -- Setup "Dropdown" boxes -- ---------------------------- -- Dropdown Taint Sucks local headerFont = "Fonts\\MORPHEUS.ttf" local headerSize = 16 -- Tip Location Selector -- local locFS = createString(addon.configPanel, "Tip Location", headerFont, headerSize) locFS:SetPoint("TOPLEFT", chkAdvanced, "BOTTOMLEFT", 0, -30) --locDD = createDropdown(addon.configPanel, "TipLocation", "Show in separate frame", "Show in mob tooltips", "ShowFrame") --locDD:SetPoint("TOPLEFT", locFS, "BOTTOMLEFT", 0, -8) local locCB = createCheck("Location", "Show tips in separate frame", addon.configPanel, function(self, value) if self:GetChecked() then QEConfig.ShowFrame = "Show in separate frame" else QEConfig.ShowFrame = "Show in mob tooltips" end addon:setEnabled() -- This just clears the addons frame. --addon:setMinimized(true) -- Ensures the tip frame is showing. addon:setDropdownEnabled() -- This shows / hides a second dropdown based on the current selection. end) locCB.tooltip = "Uncheck to have tips appear in mob tooltips instead" locCB:SetPoint("TOPLEFT", locFS, "BOTTOMLEFT", 0, -8) -- Target / Mouseover Selector -- addon.targetFS = createString(addon.configPanel, "Show Target or Mouseover", headerFont, headerSize) addon.targetFS:SetPoint("TOPLEFT", locFS, "TOPRIGHT", 70, 0) --targetDD = createDropdown(addon.configPanel, "TargetMouseover", "Show targeted mob", "Show mouseover", "TargetTrigger") --targetDD:SetPoint("TOPLEFT", targetFS, "BOTTOMLEFT", 0, -8) addon.chkTarget = createCheck("Target", "Show Targeted Mob", addon.configPanel, function(self, value) if self:GetChecked() then QEConfig.TargetTrigger = "Show targeted mob" else QEConfig.TargetTrigger = "Show mouseover" end end) addon.chkTarget:SetPoint("TOPLEFT", addon.targetFS, "BOTTOMLEFT", 0, -8) -- Role Selector -- local roleFS = createString(addon.configPanel, "Role Specific Tips", headerFont, headerSize) roleFS:SetPoint("TOPLEFT", locCB, "BOTTOMLEFT", 0, -14) --roleDD = createDropdown(addon.configPanel, "RoleSelector", "Show my role only", "Show all roles", "RoleChoice") --roleDD:SetPoint("TOPLEFT", roleFS, "BOTTOMLEFT", 0, -8) local chkRole = createCheck("Role", "Show all roles", addon.configPanel, function(self, value) if self:GetChecked() then QEConfig.RoleChoice = "Show all roles" else QEConfig.RoleChoice = "Show my role only" end end) chkRole:SetPoint("TOPLEFT", roleFS, "BOTTOMLEFT", 0, -8) -- Class Selector -- local classFS = createString(addon.configPanel, "Class Specific Tips", headerFont, headerSize) classFS:SetPoint("TOPLEFT", roleFS, "TOPRIGHT", 70, 0) --classDD = createDropdown(addon.configPanel, "ClassSelector", "Show my class only", "Show all classes", "ClassChoice") --classDD:SetPoint("TOPLEFT", classFS, "BOTTOMLEFT", 0, -8) local chkClass = createCheck("Class", "Show all classes", addon.configPanel, function(self, value) if self:GetChecked() then QEConfig.ClassChoice = "Show all classes" else QEConfig.ClassChoice = "Show my class only" end end) chkClass:SetPoint("TOPLEFT", classFS, "BOTTOMLEFT", 0, -8) -- Activate in -- Tip Location Selector -- local showinFS = createString(addon.configPanel, "Content", headerFont, headerSize) showinFS:SetPoint("TOPLEFT", roleFS, "BOTTOMLEFT", 0, -54) local chkRegDungeons = createCheck("RegDungeons", "Show Tips in Dungeons", addon.configPanel, function(self, value) end) chkRegDungeons:SetPoint("TOPLEFT", showinFS, "BOTTOMLEFT", 0, -8) chkRegDungeons:SetEnabled(false) chkRegDungeons:SetChecked(true) --[[local chkMythicPlus = createCheck("MythicPlus", "Show Tips in Mythic+", addon.configPanel, function(self, value) QEConfig.MythicPlusToggle = self:GetChecked() addon:setEnabled() end) chkMythicPlus:SetPoint("TOPLEFT", chkRegDungeons, "BOTTOMLEFT", 0, -8)]]-- local chkRaid = createCheck("Raid", "Show Tips in Raid", addon.configPanel, function(self, value) QEConfig.RaidToggle = self:GetChecked() addon:setEnabled() end) chkRaid:SetPoint("TOPLEFT", chkRegDungeons, "BOTTOMLEFT", 0, -8) -- Other Stuff local OtherFS = createString(addon.configPanel, "Font Size", headerFont, headerSize) OtherFS:SetPoint("TOPLEFT", classFS, "BOTTOMLEFT", 0, -54) --local deleteme = createString(addon.configPanel, "Delete me after", headerFont, headerSize) --deleteme:SetPoint("TOPLEFT", OtherFS, "BOTTOMLEFT", 0, -16) local sliderName = "FontSizeS" local fontEdit = CreateFrame("Slider", sliderName, addon.configPanel, "OptionsSliderTemplate") fontEdit:SetWidth(120) fontEdit:SetHeight(20) fontEdit:SetOrientation('HORIZONTAL') fontEdit:SetMinMaxValues(8, 18) fontEdit:SetValue(QEConfig.FontSize) fontEdit:SetValueStep(1) fontEdit.textLow = _G[sliderName.."Low"] fontEdit.textHigh = _G[sliderName.."High"] fontEdit.text = _G[sliderName.."Text"] fontEdit.minValue, fontEdit.maxValue = fontEdit:GetMinMaxValues() fontEdit.textLow:SetText(fontEdit.minValue) fontEdit.textHigh:SetText(fontEdit.maxValue) fontEdit.text:SetText(QEConfig.FontSize) fontEdit.textLow = 8 fontEdit.textHigh = 14 --fontEdit.text = "Font Size" fontEdit:SetPoint("TOPLEFT", OtherFS, "BOTTOMLEFT", 0, -22) fontEdit:Enable() fontEdit:SetScript("OnValueChanged", function(self,event,arg1) QEConfig.FontSize = math.floor(event + 0.5) updateTextSize() --print(QEConfig.FontSize) self.text:SetText(QEConfig.FontSize) end) -- Hall of Fame -- local hofFrame = CreateFrame("Frame", "HoFFrame", UIParent) hofFrame:SetHeight(580) hofFrame:SetWidth(580) hofFrame:SetPoint("CENTER") hofFrame.tex = hofFrame:CreateTexture() hofFrame.tex:SetAllPoints(hofFrame) hofFrame.tex:SetColorTexture(62/255, 59/255, 55/255, 0.75) hofFrame:SetFrameLevel(8) hofFrame:Hide() local hofClose = CreateFrame("Button", "HoFClose", hofFrame, "UIPanelButtonTemplate") hofClose:SetSize(25, 25) hofClose:SetFrameLevel(9) hofClose:ClearAllPoints() hofClose:SetNormalTexture("Interface\\Buttons\\CancelButton-Up") --hofClose:SetHighlightTexture("Interface\\Buttons\\CancelButton-Up", 1.0) hofClose:SetAlpha(0.85) hofClose:SetPoint("TOPRIGHT", hofFrame, "TOPRIGHT", 0, 0) hofClose:SetScript("OnClick", function() hofFrame:Hide() end) -- Config Header Text headerHof = hofFrame:CreateFontString("QE_HeaderText", nil, nil) headerHof:SetPoint("TOPLEFT", 5, -4) headerHof:SetPoint("TOPRIGHT", 5, -4) headerHof:SetFont("Fonts\\SKURRI.TTF", 16, "OUTLINE") headerHof:SetTextColor(239/255, 191/255, 90/255) headerHof:SetJustifyH("CENTER") headerHof:SetJustifyV("CENTER") headerHof:SetText("Questionably Epic Hall of Fame") headerHof:SetWordWrap(true) local hofButton = CreateFrame("Button", "HoFBtn", addon.configPanel, "UIPanelButtonTemplate") hofButton:SetSize(140, 27) hofButton:SetText("QE Hall of Fame") hofButton:SetPoint("TopLeft", chkRaid, "BOTTOMLEFT", 2, -22) hofButton:SetScript("OnClick", function() hofFrame:Show() InterfaceOptionsFrame:Hide() HideUIPanel(GameMenuFrame) end) local RRText = hofFrame:CreateFontString("RRText", nil, nil) RRText:SetPoint("TOPLEFT", 5, -44) RRText:SetPoint("TOPRIGHT", 5, -44) RRText:SetWordWrap(true) RRText:SetFont("Fonts\\SKURRI.TTF", 18, "OUTLINE") RRText:SetJustifyH("CENTER") RRText:SetJustifyV("TOP") RRText:SetText("QE Patrons") local thankyou = hofFrame:CreateFontString("RRThanks", nil, nil) thankyou:SetPoint("TOPLEFT", 5, -65) thankyou:SetPoint("TOPRIGHT", 5, -65) thankyou:SetWordWrap(true) thankyou:SetFont("Fonts\\SKURRI.TTF", 18, "OUTLINE") thankyou:SetJustifyH("CENTER") thankyou:SetJustifyV("TOP") thankyou:SetText("Thank you so much for your support!") local QE_hofText = hofFrame:CreateFontString("RRPatrons", nil, nil) QE_hofText:SetPoint("TOPLEFT", "RRText", "BOTTOMLEFT", 5, -25) QE_hofText:SetPoint("TOPRIGHT", "RRText", "BOTTOMRIGHT", 5, -25) QE_hofText:SetWordWrap(true) QE_hofText:SetFont("Fonts\\ARIALN.ttf", 16, "OUTLINE") QE_hofText:SetTextColor(1, 0, 0) QE_hofText:SetJustifyH("LEFT") QE_hofText:SetJustifyV("TOP") QE_hofText:SetText(" ") local QE_hofText2 = hofFrame:CreateFontString("RRPatrons", nil, nil) QE_hofText2:SetPoint("TOPLEFT", "RRText", "BOTTOMLEFT", 5, -25) QE_hofText2:SetPoint("TOPRIGHT", "RRText", "BOTTOMRIGHT", 5, -25) QE_hofText2:SetWordWrap(true) QE_hofText2:SetFont("Fonts\\ARIALN.ttf", 16, "OUTLINE") QE_hofText2:SetTextColor(255, 0, 0, 255) QE_hofText2:SetJustifyH("CENTER") QE_hofText2:SetJustifyV("TOP") QE_hofText2:SetText(" ") local QE_hofText3 = hofFrame:CreateFontString("RRPatrons", nil, nil) QE_hofText3:SetPoint("TOPLEFT", "RRText", "BOTTOMLEFT", 5, -25) QE_hofText3:SetPoint("TOPRIGHT", "RRText", "BOTTOMRIGHT", 5, -25) QE_hofText3:SetWordWrap(true) QE_hofText3:SetFont("Fonts\\ARIALN.ttf", 16, "OUTLINE") QE_hofText3:SetTextColor(255, 0, 0, 255) QE_hofText3:SetJustifyH("RIGHT") QE_hofText3:SetJustifyV("TOP") QE_hofText3:SetText(" ") addPatronSet(QEHallOfFameRR, RGBToHex(0, 1, 150/255), QE_hofText) addPatronSet(QEHallOfFameDiamond, RGBToHex(228/255, 35/255, 157/255), QE_hofText2) addPatronSet(QEHallOfFameGold, RGBToHex(207/255, 181/255, 59/255), QE_hofText3) --[[ local fontEdit = CreateFrame("EditBox", nil, addon.configPanel) fontEdit:SetMultiLine(false) fontEdit:SetWidth(40) fontEdit:SetText(12) fontEdit:SetFontObject(ChatFontNormal) fontEdit:SetPoint("TOPLEFT", OtherFS, "BOTTOMLEFT", 0, -8) fontEdit:SetEnabled(true) ]]-- --chkRegDungeons:SetChecked(true) -- Load in SavedVariables on ADDON_LOADED addon.configPanel:RegisterEvent("ADDON_LOADED") addon.configPanel:SetScript("OnEvent", function(self, event, arg1) if event == "ADDON_LOADED" then -- Check for new variables added in a later release QEConfig.ShowFrame = QEConfig.ShowFrame or "Show in separate frame" QEConfig.TargetTrigger = QEConfig.TargetTrigger or "Show targeted mob" -- More variables added in a later release if QEConfig.RaidToggle == nil then QEConfig.RaidToggle = true end if QEConfig.MythicPlusToggle == nil then QEConfig.MythicPlusToggle = true end QEConfig.FrameOpacity = QEConfig.FrameOpacity or 0.55 QEConfig.FrameWidth = QEConfig.FrameWidth or 450 QEConfig.FrameHeight = QEConfig.FrameHeight or 175 QEConfig.FontSize = QEConfig.FontSize or 14 --print(QEConfig.FontSize) -- Set default checkbox behaviour chkPriority:SetChecked(QEConfig.PriorityTargets) chkInterrupts:SetChecked(QEConfig.Interrupts) chkDefensives:SetChecked(QEConfig.Defensives) chkFluff:SetChecked(QEConfig.Fluff) chkAdvanced:SetChecked(QEConfig.Advanced) --chkMythicPlus:SetChecked(QEConfig.MythicPlusToggle) chkRaid:SetChecked(QEConfig.RaidToggle) -- Set default Drop Down text --UIDropDownMenu_SetText(locDD, QEConfig.ShowFrame) --UIDropDownMenu_SetText(targetDD, QEConfig.TargetTrigger) --UIDropDownMenu_SetText(roleDD, QEConfig.RoleChoice) --UIDropDownMenu_SetText(classDD, QEConfig.ClassChoice) -- "Drop downs" locCB:SetChecked(QEConfig.ShowFrame == "Show in separate frame") addon.chkTarget:SetChecked(QEConfig.TargetTrigger == "Show targeted mob") chkRole:SetChecked(QEConfig.RoleChoice == "Show all roles") chkClass:SetChecked(QEConfig.ClassChoice == "Show all classes") updateTextSize() fontEdit.text:SetText(QEConfig.FontSize) fontEdit:SetValue(QEConfig.FontSize) addon:setEnabled() addon:setDropdownEnabled() end end); -- Add panel to config options InterfaceOptions_AddCategory(addon.configPanel) -- Proceed createQEFrame() end createNewConfigMenu()