local addonname, shared = ... ---@cast shared HeimdallShared ---@cast addonname string local configFrame = CreateFrame("Frame", "HeimdallConfig", UIParent) ---@diagnostic disable-next-line: missing-fields shared.Config = {} function shared.Config.Init() configFrame:SetSize(256+256, 512) configFrame:SetPoint("CENTER") configFrame:SetFrameStrata("HIGH") configFrame:EnableMouse(true) configFrame:SetMovable(true) configFrame:SetResizable(false) configFrame:SetBackdrop({ bgFile = "Interface/Tooltips/UI-Tooltip-Background", edgeFile = "Interface/Tooltips/UI-Tooltip-Border", tile = true, tileSize = 4, edgeSize = 4, insets = { left = 4, right = 4, top = 4, bottom = 4 } }) configFrame:SetBackdropColor(0, 0, 0, 0.8) configFrame:SetBackdropBorderColor(0.5, 0.5, 0.5, 1) configFrame:SetMovable(true) configFrame:EnableMouse(true) configFrame:RegisterForDrag("LeftButton") configFrame:SetScript("OnDragStart", function(self) self:StartMoving() end) configFrame:SetScript("OnDragStop", function(self) self:StopMovingOrSizing() end) configFrame:SetScript("OnShow", function(self) self:SetScale(1) end) local title = configFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal") title:SetText("Heimdall Config") title:SetPoint("TOP", configFrame, "TOP", 0, -8) local spotterConfigFrame = CreateFrame("Frame", "HeimdallSpotterConfig", configFrame) spotterConfigFrame:SetSize(256, 128) spotterConfigFrame:SetPoint("TOPLEFT", configFrame, "TOPLEFT", 8, -24) spotterConfigFrame:SetBackdrop({ bgFile = "Interface/Tooltips/UI-Tooltip-Background", edgeFile = "Interface/Tooltips/UI-Tooltip-Border", tile = true, tileSize = 4, edgeSize = 4, insets = { left = 4, right = 4, top = 4, bottom = 4 } }) spotterConfigFrame:SetBackdropColor(0, 0, 0, 0.8) spotterConfigFrame:SetBackdropBorderColor(0.5, 0.5, 0.5, 1) -- spotterConfigFrame:Hide() local spotterEnableButton = CreateFrame("CheckButton", "HeimdallSpotterEnable", spotterConfigFrame, "UICheckButtonTemplate") spotterEnableButton.text = spotterEnableButton:CreateFontString(nil, "OVERLAY", "GameFontNormal") spotterEnableButton.text:SetText("Enable Spotter") spotterEnableButton.text:SetPoint("LEFT", spotterEnableButton, "RIGHT", 0, 0) spotterEnableButton:SetSize(24, 24) spotterEnableButton:SetPoint("TOPLEFT", spotterConfigFrame, "TOPLEFT", 4, -4) spotterEnableButton:SetChecked(Heimdall_Data.config.spotter.enabled) spotterEnableButton:SetScript("OnClick", function() Heimdall_Data.config.spotter.enabled = spotterEnableButton:GetChecked() end) -- -- ---@type table -- local spotterEnableButton = CreateFrame("Button", "HeimdallSpotterEnable", configFrame, "UIPanelButtonTemplate") -- spotterEnableButton:SetText("Enable Spotter") -- spotterEnableButton:SetSize(100, 30) -- spotterEnableButton:SetPoint("TOPLEFT", configFrame, "TOPLEFT", 10, -40) -- spotterEnableButton:SetScript("OnClick", function() -- print("Button was clicked!") -- end) -- -- local checkButton = CreateFrame("CheckButton", nil, configFrame, "UICheckButtonTemplate") -- checkButton:SetPoint("TOPRIGHT", configFrame, "TOPRIGHT", -10, -40) -- checkButton.text = checkButton:CreateFontString(nil, "OVERLAY", "GameFontNormal") -- checkButton.text:SetText("Check Me") -- checkButton.text:SetPoint("LEFT", checkButton, "RIGHT", 5, 0) -- checkButton:SetScript("OnClick", function() -- if checkButton:GetChecked() then -- print("Check Button is checked.") -- else -- print("Check Button is unchecked.") -- end -- end) -- -- -- Create a text element -- local text = configFrame:CreateFontString(nil, "ARTWORK", "GameFontHighlight") -- text:SetText("This is some text in the frame.") -- text:SetPoint("TOPLEFT", configFrame, "TOPLEFT", 10, -80) -- -- -- Create a small edit box -- local smallEditBox = CreateFrame("EditBox", nil, configFrame) -- smallEditBox:SetSize(200, 20) -- smallEditBox:SetPoint("TOPLEFT", configFrame, "TOPLEFT", 10, -110) -- smallEditBox:SetAutoFocus(false) -- smallEditBox:SetFontObject("GameFontNormal") -- smallEditBox:SetScript("OnEnterPressed", function() -- print("Entered text: " .. smallEditBox:GetText()) -- end) -- -- -- Create a large edit box -- local largeEditBox = CreateFrame("EditBox", nil, configFrame) -- largeEditBox:SetSize(280, 100) -- largeEditBox:SetPoint("TOP", configFrame, "TOP", 0, -150) -- largeEditBox:SetAutoFocus(false) -- largeEditBox:SetFontObject("GameFontNormal") -- largeEditBox:SetMultiLine(true) -- largeEditBox:EnableMouse(true) -- largeEditBox:SetMaxLetters(0) -- largeEditBox:SetScript("OnEscapePressed", function() -- largeEditBox:ClearFocus() -- end) configFrame:Show() print("Heimdall - Config loaded") end SlashCmdList["HEIMDALL_CONFIG"] = function() configFrame:Show() end SLASH_HEIMDALL_CONFIG1 = "/heimdall_config" SLASH_HEIMDALL_CONFIG2 = "/hc"