Apply Patch

This commit is contained in:
2026-10-30 16:27:05 +00:00
parent f58ee88ee3
commit 92e171266e
101 changed files with 29784 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
PTGuiMultiLineEditBox = PTGuiComponent:Extend("multi_line_editbox")
PTGuiMultiLineEditBox:Import(true, "SetText", "SetMultiLine", "SetAutoFocus", "SetFocus", "ClearFocus", "HighlightText")
PTGuiMultiLineEditBox:Import(false, "GetText", "IsMultiLine", "IsAutoFocus")
PTGuiMultiLineEditBox:ImportComponent("scroll_frame", true, "Show", "Hide", "ClearAllPoints")
function PTGuiMultiLineEditBox:New()
local obj = setmetatable({}, self)
obj:SetHandle(CreateFrame("Editbox", self:GenerateName(), nil))
obj:GetHandle():SetFontObject(ChatFontNormal)
obj:SetAutoFocus(false) -- Who actually wants this on by default??
obj:SetMultiLine(true)
local scrollFrame = PTGuiScrollFrame:New(obj)
obj:GetHandle():SetPoint("TOPLEFT", 0, 0)
obj:AddComponent("scroll_frame", scrollFrame)
obj:SetPrimary()
obj:SetScript("OnTextChanged", function()
-- Stolen from SuperMacro
local scrollBar = getglobal(this:GetParent():GetName().."ScrollBar")
this:GetParent():UpdateScrollChildRect()
local _, max = scrollBar:GetMinMaxValues()
scrollBar.prevMaxValue = scrollBar.prevMaxValue or max
if math.abs(scrollBar.prevMaxValue - scrollBar:GetValue()) <= 1 then
-- if scroll is down and add new line then move scroll
scrollBar:SetValue(max);
end
if max ~= scrollBar.prevMaxValue then
-- save max value
scrollBar.prevMaxValue = max
end
end, true)
obj:SetScript("OnEscapePressed", function()
this:ClearFocus()
end, true)
return obj
end
function PTGuiMultiLineEditBox:OnDispose()
self.super.OnDispose(self)
self:SetText("")
self:SetAutoFocus(false)
end
function PTGuiMultiLineEditBox:GetScrollFrame()
return self:GetComponent("scroll_frame")
end
function PTGuiMultiLineEditBox:SetParent(obj)
self:GetScrollFrame():SetParent(obj)
end
function PTGuiMultiLineEditBox:SetWidth(width)
self:GetScrollFrame():GetHandle():SetWidth(width)
return self
end
function PTGuiMultiLineEditBox:SetHeight(height)
self:GetScrollFrame():GetHandle():SetHeight(height)
return self
end
function PTGuiMultiLineEditBox:SetPoint(point, relativeFrame, relativePoint, xOffset, yOffset)
if type(relativeFrame) == "table" and relativeFrame.IsPuppeteerGui then
relativeFrame = relativeFrame:GetAnchor()
end
self:GetScrollFrame():SetPoint(point, relativeFrame, relativePoint, xOffset, yOffset)
return self
end
PTGuiLib.RegisterComponent(PTGuiMultiLineEditBox)