Add BigTextFrame

This commit is contained in:
2025-01-06 23:42:54 +01:00
parent e26ab02862
commit f73096e439

View File

@@ -339,9 +339,11 @@ function shared.Config.Init()
---@param onDone fun(editBox: Frame) ---@param onDone fun(editBox: Frame)
local function CreateBasicSmallEditBox(name, parent, text, initialValue, onDone) local function CreateBasicSmallEditBox(name, parent, text, initialValue, onDone)
local container = GridFrame.new(name, parent, 1, 1) local container = GridFrame.new(name, parent, 1, 1)
local editBox = CreateFrame("EditBox", name .. "EditBox", container.frame) local editBoxFrame = CreateFrame("Frame", name .. "EditBoxFrame", container.frame)
local editBoxtext = editBox:CreateFontString(nil, "OVERLAY", "GameFontNormal") local editBox = CreateFrame("EditBox", name .. "EditBox", editBoxFrame)
editBoxtext:SetText(text) local textFrame = CreateFrame("Frame", name .. "TextFrame", container.frame)
local textElement = textFrame:CreateFontString(nil, "OVERLAY", "GameFontNormal")
textElement:SetText(text)
editBox:SetAutoFocus(false) editBox:SetAutoFocus(false)
editBox:SetFontObject("GameFontNormal") editBox:SetFontObject("GameFontNormal")
@@ -366,14 +368,57 @@ function shared.Config.Init()
editBox:SetScript("OnEscapePressed", function() editBox:ClearFocus() end) editBox:SetScript("OnEscapePressed", function() editBox:ClearFocus() end)
editBox:SetScript("OnEditFocusLost", function() onDone(editBox) end) editBox:SetScript("OnEditFocusLost", function() onDone(editBox) end)
editBox:SetText(initialValue) editBox:SetText(initialValue)
container:Add(editBoxtext, 1, 1) container:Add(textFrame, 1, 1)
container:Add(editBox, 2, 1) container:Add(editBox, 2, 1)
-- I don't understand why this hack is necessary textElement:SetPoint("TOPLEFT", textFrame, "TOPLEFT", 2, -2)
-- Just put the god damn fucking text in the fucking frame return container
-- Why is the fucking text fucking levitating above the frame!?!?! end
-- I'm so fucking tired of this shit ---@param name string
-- Why do we have to use "BOTTOMLEFT"!? ---@param parent Frame
editBoxtext:SetPoint("BOTTOMLEFT", container.frame, "LEFT", 0, 0) ---@param text string
---@param onDone fun(editBox: Frame)
local function CreateBasicBigEditBox(name, parent, text, initialValue, onDone)
local container = GridFrame.new(name, parent, 1, 100)
local editBoxFrame = CreateFrame("Frame", name .. "EditBoxFrame", container.frame)
local editBox = CreateFrame("EditBox", name .. "EditBox", editBoxFrame)
local textFrame = CreateFrame("Frame", name .. "TextFrame", container.frame)
local textElement = textFrame:CreateFontString(nil, "OVERLAY", "GameFontNormal")
textElement:SetText(text)
editBoxFrame:SetBackdrop({
bgFile = "Interface/Tooltips/UI-Tooltip-Background",
edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
tile = true,
tileSize = 2,
edgeSize = 12,
insets = {
left = 2,
right = 2,
top = 2,
bottom = 2
}
})
editBoxFrame:SetBackdropColor(0.8, 0.8, 0.8, 1)
editBoxFrame:SetBackdropBorderColor(0.5, 0.5, 0.5, 1)
editBox:SetAllPoints(editBoxFrame)
editBox:SetAutoFocus(false)
editBox:SetFontObject("GameFontNormal")
editBox:SetText(initialValue)
editBox:SetTextInsets(6, 6, 6, 6)
editBox:SetMultiLine(true)
editBox:SetSize(280, 100)
editBox:SetMaxLetters(100000)
local oldSetHeight = editBox.SetHeight
editBox.SetHeight = function(self, height)
oldSetHeight(self, height)
print("Set height", height)
end
editBox:SetScript("OnEscapePressed", function() editBox:ClearFocus() end)
editBox:SetScript("OnEditFocusLost", function() onDone(editBox) end)
container:Add(textFrame, 1, 1)
container:Add(editBoxFrame, 7, 1)
textElement:SetPoint("TOPLEFT", textFrame, "TOPLEFT", 2, -2)
return container return container
end end
@@ -478,7 +523,7 @@ function shared.Config.Init()
do do
local whoerConfigFrame = GridFrame.new("HeimdallWhoerConfig", local whoerConfigFrame = GridFrame.new("HeimdallWhoerConfig",
UIParent, 12, 20) UIParent, 12, 20)
configFrame:Add(whoerConfigFrame, 5, 3) configFrame:Add(whoerConfigFrame, 15, 3)
local title = whoerConfigFrame.frame:CreateFontString(nil, "ARTWORK", "GameFontNormal") local title = whoerConfigFrame.frame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
title:SetText("Whoer") title:SetText("Whoer")
@@ -529,6 +574,14 @@ function shared.Config.Init()
end end
end) end)
whoerConfigFrame:Add(ttl, 2, 6) whoerConfigFrame:Add(ttl, 2, 6)
local ignored = CreateBasicBigEditBox("HeimdallWhoerConfigIgnored",
whoerConfigFrame.frame, "Ignored",
table.concat(Heimdall_Data.config.who.ignored or {}, "\n"),
function(self)
--Heimdall_Data.config.who.ignored = self:GetText()
end)
whoerConfigFrame:Add(ignored, 6, 6)
end end
--local spotterEveryoneButton = BasicButton("HeimdallSpotterEveryone", spotterConfigFrame, "Everyone", function(state) --local spotterEveryoneButton = BasicButton("HeimdallSpotterEveryone", spotterConfigFrame, "Everyone", function(state)