chore: move addon into Chatter/ + add standard .gitignore
Matches the Exiles fork-layout convention (each addon in its own folder).
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
local mod = Chatter:NewModule("All Edge resizing","AceHook-3.0")
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("Chatter")
|
||||
mod.modName = L["All Edge resizing"]
|
||||
|
||||
function mod:Info()
|
||||
return L["Allows you to use the edge for resizing, instead of just the lower right corner."]
|
||||
end
|
||||
|
||||
local anchorPoints = { "TopLeft", "TopRight", "BottomLeft", "BottomRight", "Top", "Right", "Left", "Bottom" }
|
||||
|
||||
function mod:OnInitialize()
|
||||
|
||||
end
|
||||
|
||||
local function ChatFrame_StartResizing(self)
|
||||
local chatFrame = self:GetParent()
|
||||
if chatFrame.isLocked then return end
|
||||
if chatFrame.isDocked and chatFrame ~= DEFAULT_CHAT_FRAME then return end
|
||||
chatFrame.resizing = 1
|
||||
chatFrame:StartSizing(self.anchorPoint)
|
||||
end
|
||||
|
||||
local function ChatFrame_StopResizing(self)
|
||||
local chatFrame = self:GetParent()
|
||||
chatFrame:StopMovingOrSizing()
|
||||
if chatFrame == DEFAULT_CHAT_FRAME then
|
||||
FCF_DockUpdate()
|
||||
end
|
||||
chatFrame.resizing = nil
|
||||
FCF_SavePositionAndDimensions(chatFrame);
|
||||
end
|
||||
|
||||
function mod:SetChatWindowLocked(index, locked, ...)
|
||||
local f = _G["ChatFrame" .. index]
|
||||
for _, v in ipairs(anchorPoints) do
|
||||
local k = "resize" .. v
|
||||
if f[k] then
|
||||
f[k]:EnableMouse(not locked)
|
||||
end
|
||||
end
|
||||
return self.hooks.SetChatWindowLocked(index, locked, ...)
|
||||
end
|
||||
|
||||
function mod:MakeResizers(frame)
|
||||
local f = frame
|
||||
if not f.resizeTopLeft then
|
||||
f.background = _G[("ChatFrame%dBackground"):format(frame:GetID())]
|
||||
for _, v in ipairs(anchorPoints) do
|
||||
local k = "resize" .. v
|
||||
f[k] = CreateFrame("Button", "ChatFrame" .. frame:GetID() .. "Resize" .. v, f)
|
||||
f[k].anchorPoint = v:upper()
|
||||
f[k]:SetWidth(16)
|
||||
f[k]:SetHeight(16)
|
||||
f[k]:SetScript("OnMouseDown", ChatFrame_StartResizing)
|
||||
f[k]:SetScript("OnMouseUp", ChatFrame_StopResizing)
|
||||
LowerFrameLevel(f[k])
|
||||
end
|
||||
f.resizeTopLeft:SetPoint("TOPLEFT", f.background, -2, 2)
|
||||
f.resizeTopRight:SetPoint("TOPRIGHT", f.background, 2, 2)
|
||||
f.resizeBottomLeft:SetPoint("BOTTOMLEFT", f.background, -2, -3)
|
||||
f.resizeBottomRight:SetPoint("BOTTOMRIGHT", f.background, 2, -3)
|
||||
f.resizeTop:SetPoint("LEFT", f.resizeTopLeft, "RIGHT", 0, 0)
|
||||
f.resizeTop:SetPoint("RIGHT", f.resizeTopRight, "LEFT", 0, 0)
|
||||
f.resizeRight:SetPoint("TOP", f.resizeTopRight, "BOTTOM", 0, 0)
|
||||
f.resizeRight:SetPoint("BOTTOM", f.resizeBottomRight, "TOP", 0, 0)
|
||||
f.resizeBottom:SetPoint("LEFT", f.resizeBottomLeft, "RIGHT", 0, 0)
|
||||
f.resizeBottom:SetPoint("RIGHT", f.resizeBottomRight, "LEFT", 0, 0)
|
||||
f.resizeLeft:SetPoint("TOP", f.resizeTopLeft, "BOTTOM", 0, 0)
|
||||
f.resizeLeft:SetPoint("BOTTOM", f.resizeBottomLeft, "TOP", 0, 0)
|
||||
else
|
||||
f.resizeTopLeft:Show()
|
||||
f.resizeTopRight:Show()
|
||||
f.resizeBottomLeft:Show()
|
||||
f.resizeBottomRight:Show()
|
||||
f.resizeTop:Show()
|
||||
f.resizeTop:Show()
|
||||
f.resizeRight:Show()
|
||||
f.resizeRight:Show()
|
||||
f.resizeBottom:Show()
|
||||
f.resizeBottom:Show()
|
||||
f.resizeLeft:Show()
|
||||
f.resizeLeft:Show()
|
||||
end
|
||||
end
|
||||
|
||||
function mod:HideResizers(f)
|
||||
f.resizeTopLeft:Hide()
|
||||
f.resizeTopRight:Hide()
|
||||
f.resizeBottomLeft:Hide()
|
||||
f.resizeBottomRight:Hide()
|
||||
f.resizeTop:Hide()
|
||||
f.resizeTop:Hide()
|
||||
f.resizeRight:Hide()
|
||||
f.resizeRight:Hide()
|
||||
f.resizeBottom:Hide()
|
||||
f.resizeBottom:Hide()
|
||||
f.resizeLeft:Hide()
|
||||
f.resizeLeft:Hide()
|
||||
end
|
||||
|
||||
function mod:OnEnable()
|
||||
for i = 1, NUM_CHAT_WINDOWS do
|
||||
local f = _G[("ChatFrame%d"):format(i)]
|
||||
self:MakeResizers(f)
|
||||
local b = _G[("ChatFrame%dResizeButton"):format(i)]
|
||||
b:SetScript("OnShow", b.Hide)
|
||||
b:Hide()
|
||||
end
|
||||
for index,name in ipairs(self.TempChatFrames) do
|
||||
local f = _G[name]
|
||||
self:MakeResizers(f)
|
||||
local b = _G[("ChatFrame%dResizeButton"):format(f:GetID())]
|
||||
b:SetScript("OnShow", b.Hide)
|
||||
b:Hide()
|
||||
end
|
||||
self:RawHook("SetChatWindowLocked",true)
|
||||
end
|
||||
|
||||
function mod:OnDisable()
|
||||
for i = 1, NUM_CHAT_WINDOWS do
|
||||
local f = _G["ChatFrame"..i]
|
||||
self:HideResizers(f)
|
||||
local b = _G[("ChatFrame%dResizeButton"):format(f:GetID())]
|
||||
b:SetScript("OnShow", b.Show)
|
||||
b:Show()
|
||||
end
|
||||
for index,name in ipairs(self.TempChatFrames) do
|
||||
local f = _G[name]
|
||||
self:HideResizers(f)
|
||||
local b = _G[("ChatFrame%dResizeButton"):format(f:GetID())]
|
||||
b:SetScript("OnShow", b.Show)
|
||||
b:Show()
|
||||
end
|
||||
self:UnhookAll()
|
||||
end
|
||||
Reference in New Issue
Block a user