diff --git a/ShaguTweaks-extras.toc b/ShaguTweaks-extras.toc index a559b8c..780f3ea 100644 --- a/ShaguTweaks-extras.toc +++ b/ShaguTweaks-extras.toc @@ -21,6 +21,7 @@ main.lua # modules mods\chat-history.lua +mods\chat-input-center.lua mods\macro-icons.lua mods\macro-tweaks.lua mods\worldmap-reveal.lua diff --git a/mods/chat-input-center.lua b/mods/chat-input-center.lua new file mode 100644 index 0000000..73db489 --- /dev/null +++ b/mods/chat-input-center.lua @@ -0,0 +1,39 @@ +local _G = ShaguTweaks.GetGlobalEnv() +local T = ShaguTweaks.T +local rgbhex = ShaguTweaks.rgbhex + +local module = ShaguTweaks:register({ + title = T["Center Text Input Box"], + description = T["Move the chat input box to the center of the screen."], + expansions = { ["vanilla"] = true, ["tbc"] = false }, + category = T["Chat"], + maintainer = "@shagu (GitHub)", + enabled = nil, +}) + +local dodge_frames = { + MainMenuBarArtFrame, MultiBarBottomLeft, MultiBarBottomRight, PetActionBarFrame, ShapeshiftBarFrame +} + +module.enable = function(self) + ChatFrameEditBox:ClearAllPoints() + ChatFrameEditBox:SetWidth(300) + + -- reload custom frame positions after original frame manage runs + local hookUIParent_ManageFramePositions = UIParent_ManageFramePositions + UIParent_ManageFramePositions = function(a1, a2, a3) + -- run original function + hookUIParent_ManageFramePositions(a1, a2, a3) + + -- let inputbox dodge certain frames + local top = 0 + for id, frame in pairs(dodge_frames) do + if frame:IsVisible() and frame:GetTop() then + top = math.max(top, frame:GetTop()) + end + end + + -- set new position + ChatFrameEditBox:SetPoint("BOTTOM", UIParent, "BOTTOM", 0, top) + end +end