Files
coa-elvui/ElvUI/Layout/Layout.lua
T
Andrew6810 60ef8a38af init
2022-10-21 07:09:01 -07:00

521 lines
21 KiB
Lua

local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local LO = E:GetModule("Layout")
local DT = E:GetModule("DataTexts")
--Lua functions
--WoW API / Variables
local CreateFrame = CreateFrame
local UIFrameFadeIn, UIFrameFadeOut = UIFrameFadeIn, UIFrameFadeOut
local PANEL_HEIGHT = 22
local SIDE_BUTTON_WIDTH = 16
local function Panel_OnShow(self)
self:SetFrameLevel(0)
self:SetFrameStrata("BACKGROUND")
end
function LO:Initialize()
self.Initialized = true
self:CreateChatPanels()
self:CreateMinimapPanels()
self:SetDataPanelStyle()
self.BottomPanel = CreateFrame("Frame", "ElvUI_BottomPanel", E.UIParent)
self.BottomPanel:SetTemplate("Transparent")
self.BottomPanel:Point("BOTTOMLEFT", E.UIParent, "BOTTOMLEFT", -1, -1)
self.BottomPanel:Point("BOTTOMRIGHT", E.UIParent, "BOTTOMRIGHT", 1, -1)
self.BottomPanel:Height(PANEL_HEIGHT)
self.BottomPanel:SetScript("OnShow", Panel_OnShow)
Panel_OnShow(self.BottomPanel)
self:BottomPanelVisibility()
self.TopPanel = CreateFrame("Frame", "ElvUI_TopPanel", E.UIParent)
self.TopPanel:SetTemplate("Transparent")
self.TopPanel:Point("TOPLEFT", E.UIParent, "TOPLEFT", -1, 1)
self.TopPanel:Point("TOPRIGHT", E.UIParent, "TOPRIGHT", 1, 1)
self.TopPanel:Height(PANEL_HEIGHT)
self.TopPanel:SetScript("OnShow", Panel_OnShow)
Panel_OnShow(self.TopPanel)
self:TopPanelVisibility()
end
function LO:BottomPanelVisibility()
if E.db.general.bottomPanel then
self.BottomPanel:Show()
else
self.BottomPanel:Hide()
end
end
function LO:TopPanelVisibility()
if E.db.general.topPanel then
self.TopPanel:Show()
else
self.TopPanel:Hide()
end
end
local function ChatPanelLeft_OnFade()
LeftChatPanel:Hide()
end
local function ChatPanelRight_OnFade()
RightChatPanel:Hide()
end
local function ChatButton_OnEnter(self)
if E.db[self.parent:GetName().."Faded"] then
self.parent:Show()
UIFrameFadeIn(self.parent, 0.2, self.parent:GetAlpha(), 1)
if E.db.chat.fadeChatToggles then
UIFrameFadeIn(self, 0.2, self:GetAlpha(), 1)
end
end
if self == LeftChatToggleButton then
GameTooltip:SetOwner(self, "ANCHOR_TOPLEFT", 0, (E.PixelMode and 1 or 3))
GameTooltip:ClearLines()
GameTooltip:AddDoubleLine(L["Left Click:"], L["Toggle Chat Frame"], 1, 1, 1)
else
GameTooltip:SetOwner(self, "ANCHOR_TOPRIGHT", 0, (E.PixelMode and 1 or 3))
GameTooltip:ClearLines()
GameTooltip:AddDoubleLine(L["Left Click:"], L["Toggle Chat Frame"], 1, 1, 1)
end
GameTooltip:Show()
end
local function ChatButton_OnLeave(self)
if E.db[self.parent:GetName().."Faded"] then
UIFrameFadeOut(self.parent, 0.2, self.parent:GetAlpha(), 0)
self.parent.fadeInfo.finishedFunc = self.parent.fadeFunc
if E.db.chat.fadeChatToggles then
UIFrameFadeOut(self, 0.2, self:GetAlpha(), 0)
end
end
GameTooltip:Hide()
end
local function ChatButton_OnClick(self)
GameTooltip:Hide()
local name = self.parent:GetName().."Faded"
if E.db[name] then
E.db[name] = nil
UIFrameFadeIn(self.parent, 0.2, self.parent:GetAlpha(), 1)
if E.db.chat.fadeChatToggles then
UIFrameFadeIn(self, 0.2, self:GetAlpha(), 1)
end
else
E.db[name] = true
UIFrameFadeOut(self.parent, 0.2, self.parent:GetAlpha(), 0)
self.parent.fadeInfo.finishedFunc = self.parent.fadeFunc
if E.db.chat.fadeChatToggles then
UIFrameFadeOut(self, 0.2, self:GetAlpha(), 0)
end
end
end
function HideLeftChat()
ChatButton_OnClick(LeftChatToggleButton)
end
function HideRightChat()
ChatButton_OnClick(RightChatToggleButton)
end
function HideBothChat()
ChatButton_OnClick(LeftChatToggleButton)
ChatButton_OnClick(RightChatToggleButton)
end
function LO:ToggleChatTabPanels(rightOverride, leftOverride)
if leftOverride or not E.db.chat.panelTabBackdrop then
LeftChatTab:Hide()
else
LeftChatTab:Show()
end
if rightOverride or not E.db.chat.panelTabBackdrop then
RightChatTab:Hide()
else
RightChatTab:Show()
end
end
function LO:SetChatTabStyle()
local tabStyle = E.db.chat.panelTabTransparency and "Transparent" or nil
local glossTex = not tabStyle and true or nil
LeftChatTab:SetTemplate(tabStyle, glossTex)
RightChatTab:SetTemplate(tabStyle, glossTex)
end
function LO:SetDataPanelStyle()
local miniStyle = E.db.datatexts.panelTransparency and "Transparent" or "Default"
local panelStyle = (not E.db.datatexts.panelBackdrop) and "NoBackdrop" or miniStyle
local panelGlossTex = (panelStyle and true) or nil
local miniGlossTex = (miniStyle and nil) or true
LeftChatDataPanel:SetTemplate(panelStyle, panelGlossTex)
LeftChatToggleButton:SetTemplate(panelStyle, panelGlossTex)
RightChatDataPanel:SetTemplate(panelStyle, panelGlossTex)
RightChatToggleButton:SetTemplate(panelStyle, panelGlossTex)
LeftMiniPanel:SetTemplate(miniStyle, miniGlossTex)
RightMiniPanel:SetTemplate(miniStyle, miniGlossTex)
ElvConfigToggle:SetTemplate(miniStyle, miniGlossTex)
end
function LO:RepositionChatDataPanels()
LeftChatDataPanel:ClearAllPoints()
RightChatDataPanel:ClearAllPoints()
local SPACING = E.Border*3 - E.Spacing
local SIDE_BUTTON_SPACING = (E.PixelMode and E.Border*4) or SPACING*2
--Left Chat Tab
LeftChatTab:Point("TOPLEFT", LeftChatPanel, "TOPLEFT", SPACING, -SPACING)
LeftChatTab:Point("TOPRIGHT", LeftChatPanel, "TOPRIGHT", -SPACING, -SPACING)
LeftChatTab:Point("BOTTOMRIGHT", LeftChatPanel, "TOPRIGHT", -SPACING, -(SPACING + PANEL_HEIGHT))
LeftChatTab:Point("BOTTOMLEFT", LeftChatPanel, "TOPLEFT", SPACING, -(SPACING + PANEL_HEIGHT))
--Left Chat Data Panel
LeftChatDataPanel:Point("BOTTOMLEFT", LeftChatPanel, "BOTTOMLEFT", SPACING + SIDE_BUTTON_WIDTH, SPACING)
LeftChatDataPanel:Point("BOTTOMRIGHT", LeftChatPanel, "BOTTOMRIGHT", -SPACING, SPACING)
LeftChatDataPanel:Point("TOPRIGHT", LeftChatPanel, "BOTTOMRIGHT", -SPACING, (SPACING + PANEL_HEIGHT))
LeftChatDataPanel:Point("TOPLEFT", LeftChatPanel, "BOTTOMLEFT", SIDE_BUTTON_SPACING + SIDE_BUTTON_WIDTH, (SPACING + PANEL_HEIGHT))
--Left Chat Toggle Button
LeftChatToggleButton:Point("TOPRIGHT", LeftChatDataPanel, "TOPLEFT", E.Border - E.Spacing*3, 0)
LeftChatToggleButton:Point("TOPLEFT", LeftChatDataPanel, "TOPLEFT", -E.Border - E.Spacing*3 - SIDE_BUTTON_WIDTH, 0)
LeftChatToggleButton:Point("BOTTOMLEFT", LeftChatPanel, "BOTTOMLEFT", SPACING, SPACING)
LeftChatToggleButton:Point("BOTTOMRIGHT", LeftChatPanel, "BOTTOMLEFT", SPACING + SIDE_BUTTON_WIDTH, SPACING)
--Right Chat Tab
RightChatTab:Point("TOPRIGHT", RightChatPanel, "TOPRIGHT", -SPACING, -SPACING)
RightChatTab:Point("TOPLEFT", RightChatPanel, "TOPLEFT", SPACING, -SPACING)
RightChatTab:Point("BOTTOMLEFT", RightChatPanel, "TOPLEFT", SPACING, -(SPACING + PANEL_HEIGHT))
RightChatTab:Point("BOTTOMRIGHT", RightChatPanel, "TOPRIGHT", -SPACING, -(SPACING + PANEL_HEIGHT))
--Right Chat Data Panel
RightChatDataPanel:Point("BOTTOMLEFT", RightChatPanel, "BOTTOMLEFT", SPACING, SPACING)
RightChatDataPanel:Point("BOTTOMRIGHT", RightChatPanel, "BOTTOMRIGHT", -SPACING-SIDE_BUTTON_WIDTH, SPACING)
RightChatDataPanel:Point("TOPRIGHT", RightChatPanel, "BOTTOMRIGHT", -(SIDE_BUTTON_SPACING + SIDE_BUTTON_WIDTH), SPACING + PANEL_HEIGHT)
RightChatDataPanel:Point("TOPLEFT", RightChatPanel, "BOTTOMLEFT", (SPACING), SPACING + PANEL_HEIGHT)
--Right Chat Toggle Button
RightChatToggleButton:Point("TOPLEFT", RightChatDataPanel, "TOPRIGHT", -E.Border + E.Spacing*3, 0)
RightChatToggleButton:Point("TOPRIGHT", RightChatDataPanel, "TOPRIGHT", E.Border + E.Spacing*3 + SIDE_BUTTON_WIDTH, 0)
RightChatToggleButton:Point("BOTTOMRIGHT", RightChatPanel, "BOTTOMRIGHT", -SPACING, SPACING)
RightChatToggleButton:Point("BOTTOMLEFT", RightChatPanel, "BOTTOMRIGHT", -SPACING - SIDE_BUTTON_WIDTH, SPACING)
end
function LO:ToggleChatPanels()
LeftChatDataPanel:ClearAllPoints()
RightChatDataPanel:ClearAllPoints()
local SPACING = E.Border*3 - E.Spacing
local SIDE_BUTTON_SPACING = (E.PixelMode and E.Border*4) or SPACING*2
if E.db.datatexts.leftChatPanel then
LeftChatDataPanel:Show()
LeftChatToggleButton:Show()
else
LeftChatDataPanel:Hide()
LeftChatToggleButton:Hide()
end
if E.db.datatexts.rightChatPanel then
RightChatDataPanel:Show()
RightChatToggleButton:Show()
else
RightChatDataPanel:Hide()
RightChatToggleButton:Hide()
end
local panelBackdrop = E.db.chat.panelBackdrop
if panelBackdrop == "SHOWBOTH" then
LeftChatPanel.backdrop:Show()
RightChatPanel.backdrop:Show()
LeftChatDataPanel:Point("BOTTOMLEFT", LeftChatPanel, "BOTTOMLEFT", SIDE_BUTTON_SPACING + SIDE_BUTTON_WIDTH, SPACING)
LeftChatDataPanel:Point("TOPRIGHT", LeftChatPanel, "BOTTOMRIGHT", -SPACING, (SPACING + PANEL_HEIGHT))
RightChatDataPanel:Point("BOTTOMLEFT", RightChatPanel, "BOTTOMLEFT", SPACING, SPACING)
RightChatDataPanel:Point("TOPRIGHT", RightChatPanel, "BOTTOMRIGHT", -(SIDE_BUTTON_SPACING + SIDE_BUTTON_WIDTH), SPACING + PANEL_HEIGHT)
LeftChatToggleButton:Point("BOTTOMLEFT", LeftChatPanel, "BOTTOMLEFT", SPACING, SPACING)
RightChatToggleButton:Point("BOTTOMRIGHT", RightChatPanel, "BOTTOMRIGHT", -SPACING, SPACING)
LO:ToggleChatTabPanels()
elseif panelBackdrop == "HIDEBOTH" then
LeftChatPanel.backdrop:Hide()
RightChatPanel.backdrop:Hide()
LeftChatDataPanel:Point("BOTTOMLEFT", LeftChatPanel, "BOTTOMLEFT", SIDE_BUTTON_WIDTH, 0)
LeftChatDataPanel:Point("TOPRIGHT", LeftChatPanel, "BOTTOMRIGHT", 0, PANEL_HEIGHT)
RightChatDataPanel:Point("BOTTOMLEFT", RightChatPanel, "BOTTOMLEFT")
RightChatDataPanel:Point("TOPRIGHT", RightChatPanel, "BOTTOMRIGHT", -SIDE_BUTTON_WIDTH, PANEL_HEIGHT)
LeftChatToggleButton:Point("BOTTOMLEFT", LeftChatPanel, "BOTTOMLEFT")
RightChatToggleButton:Point("BOTTOMRIGHT", RightChatPanel, "BOTTOMRIGHT")
LO:ToggleChatTabPanels(true, true)
elseif panelBackdrop == "LEFT" then
LeftChatPanel.backdrop:Show()
RightChatPanel.backdrop:Hide()
LeftChatDataPanel:Point("BOTTOMLEFT", LeftChatPanel, "BOTTOMLEFT", SIDE_BUTTON_SPACING + SIDE_BUTTON_WIDTH, SPACING)
LeftChatDataPanel:Point("TOPRIGHT", LeftChatPanel, "BOTTOMRIGHT", -SPACING, (SPACING + PANEL_HEIGHT))
RightChatDataPanel:Point("BOTTOMLEFT", RightChatPanel, "BOTTOMLEFT")
RightChatDataPanel:Point("TOPRIGHT", RightChatPanel, "BOTTOMRIGHT", -SIDE_BUTTON_WIDTH, PANEL_HEIGHT)
LeftChatToggleButton:Point("BOTTOMLEFT", LeftChatPanel, "BOTTOMLEFT", SPACING, SPACING)
RightChatToggleButton:Point("BOTTOMRIGHT", RightChatPanel, "BOTTOMRIGHT")
LO:ToggleChatTabPanels(true)
else
LeftChatPanel.backdrop:Hide()
RightChatPanel.backdrop:Show()
LeftChatDataPanel:Point("BOTTOMLEFT", LeftChatPanel, "BOTTOMLEFT", SIDE_BUTTON_WIDTH, 0)
LeftChatDataPanel:Point("TOPRIGHT", LeftChatPanel, "BOTTOMRIGHT", 0, PANEL_HEIGHT)
RightChatDataPanel:Point("BOTTOMLEFT", RightChatPanel, "BOTTOMLEFT", SPACING, SPACING)
RightChatDataPanel:Point("TOPRIGHT", RightChatPanel, "BOTTOMRIGHT", -(SIDE_BUTTON_SPACING + SIDE_BUTTON_WIDTH), SPACING + PANEL_HEIGHT)
LeftChatToggleButton:Point("BOTTOMLEFT", LeftChatPanel, "BOTTOMLEFT")
RightChatToggleButton:Point("BOTTOMRIGHT", RightChatPanel, "BOTTOMRIGHT", -SPACING, SPACING)
LO:ToggleChatTabPanels(nil, true)
end
end
function LO:CreateChatPanels()
local SPACING = E.Border*3 - E.Spacing
local SIDE_BUTTON_SPACING = (E.PixelMode and E.Border*4) or SPACING*2
--Left Chat
local lchat = CreateFrame("Frame", "LeftChatPanel", E.UIParent)
lchat:SetFrameStrata("BACKGROUND")
lchat:SetFrameLevel(100)
lchat:Size(E.db.chat.panelWidth, E.db.chat.panelHeight)
lchat:Point("BOTTOMLEFT", E.UIParent, 4, 4)
lchat:CreateBackdrop("Transparent")
lchat.backdrop.ignoreBackdropColors = true
lchat.backdrop:SetAllPoints()
E:CreateMover(lchat, "LeftChatMover", L["Left Chat"], nil, nil, nil, nil, nil, "chat,general")
--Background Texture
lchat.tex = lchat:CreateTexture(nil, "OVERLAY")
lchat.tex:SetInside()
lchat.tex:SetTexture(E.db.chat.panelBackdropNameLeft)
lchat.tex:SetAlpha(E.db.general.backdropfadecolor.a - 0.7 > 0 and E.db.general.backdropfadecolor.a - 0.7 or 0.5)
--Left Chat Tab
local lchattab = CreateFrame("Frame", "LeftChatTab", lchat)
lchattab:Point("TOPLEFT", lchat, "TOPLEFT", SPACING, -SPACING)
lchattab:Point("TOPRIGHT", lchat, "TOPRIGHT", -SPACING, -SPACING)
lchattab:Point("BOTTOMRIGHT", lchat, "TOPRIGHT", -SPACING, -(SPACING + PANEL_HEIGHT))
lchattab:Point("BOTTOMLEFT", lchat, "TOPLEFT", SPACING, -(SPACING + PANEL_HEIGHT))
lchattab:SetTemplate(E.db.chat.panelTabTransparency and "Transparent" or "Default", true)
--Left Chat Data Panel
local lchatdp = CreateFrame("Frame", "LeftChatDataPanel", lchat)
lchatdp:Point("BOTTOMLEFT", lchat, "BOTTOMLEFT", SPACING + SIDE_BUTTON_WIDTH, SPACING)
lchatdp:Point("BOTTOMRIGHT", lchat, "BOTTOMRIGHT", -SPACING, SPACING)
lchatdp:Point("TOPRIGHT", lchat, "BOTTOMRIGHT", -SPACING, (SPACING + PANEL_HEIGHT))
lchatdp:Point("TOPLEFT", lchat, "BOTTOMLEFT", SIDE_BUTTON_SPACING+SIDE_BUTTON_WIDTH, (SPACING + PANEL_HEIGHT))
lchatdp:SetTemplate(E.db.datatexts.panelTransparency and "Transparent" or "Default", true)
DT:RegisterPanel(lchatdp, 3, "ANCHOR_TOPLEFT", -17, 4)
--Left Chat Toggle Button
local lchattb = CreateFrame("Button", "LeftChatToggleButton", E.UIParent)
lchattb.parent = lchat
LeftChatPanel.fadeFunc = ChatPanelLeft_OnFade
lchattb:Point("TOPRIGHT", lchatdp, "TOPLEFT", E.Border - E.Spacing*3, 0)
lchattb:Point("TOPLEFT", lchatdp, "TOPLEFT", -E.Border - E.Spacing*3 - SIDE_BUTTON_WIDTH, 0)
lchattb:Point("BOTTOMLEFT", lchat, "BOTTOMLEFT", SPACING, SPACING)
lchattb:Point("BOTTOMRIGHT", lchat, "BOTTOMLEFT", SPACING+SIDE_BUTTON_WIDTH, SPACING)
lchattb:SetTemplate(E.db.datatexts.panelTransparency and "Transparent" or "Default", true)
lchattb:RegisterForClicks("AnyUp")
lchattb:SetScript("OnEnter", ChatButton_OnEnter)
lchattb:SetScript("OnLeave", ChatButton_OnLeave)
lchattb:SetScript("OnClick", ChatButton_OnClick)
lchattb.text = lchattb:CreateFontString(nil, "OVERLAY")
lchattb.text:FontTemplate()
lchattb.text:Point("CENTER")
lchattb.text:SetJustifyH("CENTER")
lchattb.text:SetText("<")
--Right Chat
local rchat = CreateFrame("Frame", "RightChatPanel", E.UIParent)
rchat:SetFrameStrata("BACKGROUND")
rchat:SetFrameLevel(100)
rchat:Size(E.db.chat.separateSizes and E.db.chat.panelWidthRight or E.db.chat.panelWidth, E.db.chat.separateSizes and E.db.chat.panelHeightRight or E.db.chat.panelHeight)
rchat:Point("BOTTOMRIGHT", E.UIParent, -4, 4)
rchat:CreateBackdrop("Transparent")
rchat.backdrop.ignoreBackdropColors = true
rchat.backdrop:SetAllPoints()
E:CreateMover(rchat, "RightChatMover", L["Right Chat"], nil, nil, nil, nil, nil, "chat,general")
--Background Texture
rchat.tex = rchat:CreateTexture(nil, "OVERLAY")
rchat.tex:SetInside()
rchat.tex:SetTexture(E.db.chat.panelBackdropNameRight)
rchat.tex:SetAlpha(E.db.general.backdropfadecolor.a - 0.7 > 0 and E.db.general.backdropfadecolor.a - 0.7 or 0.5)
--Right Chat Tab
local rchattab = CreateFrame("Frame", "RightChatTab", rchat)
rchattab:Point("TOPRIGHT", rchat, "TOPRIGHT", -SPACING, -SPACING)
rchattab:Point("TOPLEFT", rchat, "TOPLEFT", SPACING, -SPACING)
rchattab:Point("BOTTOMLEFT", rchat, "TOPLEFT", SPACING, -(SPACING + PANEL_HEIGHT))
rchattab:Point("BOTTOMRIGHT", rchat, "TOPRIGHT", -SPACING, -(SPACING + PANEL_HEIGHT))
rchattab:SetTemplate(E.db.chat.panelTabTransparency and "Transparent" or "Default", true)
--Right Chat Data Panel
local rchatdp = CreateFrame("Frame", "RightChatDataPanel", rchat)
rchatdp:Point("BOTTOMLEFT", rchat, "BOTTOMLEFT", SPACING, SPACING)
rchatdp:Point("BOTTOMRIGHT", rchat, "BOTTOMRIGHT", -SPACING-SIDE_BUTTON_WIDTH, SPACING)
rchatdp:Point("TOPRIGHT", rchat, "BOTTOMRIGHT", -(SIDE_BUTTON_SPACING + SIDE_BUTTON_WIDTH), SPACING + PANEL_HEIGHT)
rchatdp:Point("TOPLEFT", rchat, "BOTTOMLEFT", (SPACING), SPACING + PANEL_HEIGHT)
rchatdp:SetTemplate(E.db.datatexts.panelTransparency and "Transparent" or "Default", true)
DT:RegisterPanel(rchatdp, 3, "ANCHOR_TOPRIGHT", 17, 4)
--Right Chat Toggle Button
local rchattb = CreateFrame("Button", "RightChatToggleButton", E.UIParent)
rchattb.parent = rchat
rchat.fadeFunc = ChatPanelRight_OnFade
rchattb:Point("TOPLEFT", rchatdp, "TOPRIGHT", -E.Border + E.Spacing*3, 0)
rchattb:Point("TOPRIGHT", rchatdp, "TOPRIGHT", E.Border + E.Spacing*3 + SIDE_BUTTON_WIDTH, 0)
rchattb:Point("BOTTOMRIGHT", rchat, "BOTTOMRIGHT", -SPACING, SPACING)
rchattb:Point("BOTTOMLEFT", rchat, "BOTTOMRIGHT", -SPACING-SIDE_BUTTON_WIDTH, SPACING)
rchattb:SetTemplate(E.db.datatexts.panelTransparency and "Transparent" or "Default", true)
rchattb:RegisterForClicks("AnyUp")
rchattb:SetScript("OnEnter", ChatButton_OnEnter)
rchattb:SetScript("OnLeave", ChatButton_OnLeave)
rchattb:SetScript("OnClick", ChatButton_OnClick)
rchattb.text = rchattb:CreateFontString(nil, "OVERLAY")
rchattb.text:FontTemplate()
rchattb.text:Point("CENTER")
rchattb.text:SetJustifyH("CENTER")
rchattb.text:SetText(">")
--Load Settings
local fadeToggle = E.db.chat.fadeChatToggles
if E.db.LeftChatPanelFaded then
if fadeToggle then
LeftChatToggleButton:SetAlpha(0)
end
lchat:Hide()
end
if E.db.RightChatPanelFaded then
if fadeToggle then
RightChatToggleButton:SetAlpha(0)
end
rchat:Hide()
end
self:ToggleChatPanels()
end
function LO:CreateMinimapPanels()
local lminipanel = CreateFrame("Frame", "LeftMiniPanel", Minimap)
lminipanel:Point("TOPLEFT", Minimap, "BOTTOMLEFT", -E.Border, -E.Spacing*3)
lminipanel:Point("BOTTOMRIGHT", Minimap, "BOTTOM", 0, -(E.Spacing*3 + PANEL_HEIGHT))
lminipanel:SetTemplate(E.db.datatexts.panelTransparency and "Transparent" or "Default", true)
DT:RegisterPanel(lminipanel, 1, "ANCHOR_BOTTOMLEFT", lminipanel:GetWidth() * 2, -4)
local rminipanel = CreateFrame("Frame", "RightMiniPanel", Minimap)
rminipanel:Point("TOPRIGHT", Minimap, "BOTTOMRIGHT", E.Border, -(E.Spacing*3))
rminipanel:Point("BOTTOMLEFT", lminipanel, "BOTTOMRIGHT", -E.Border + (E.Spacing*3), 0)
rminipanel:SetTemplate(E.db.datatexts.panelTransparency and "Transparent" or "Default", true)
DT:RegisterPanel(rminipanel, 1, "ANCHOR_BOTTOM", 0, -4)
if E.db.datatexts.minimapPanels then
LeftMiniPanel:Show()
RightMiniPanel:Show()
else
LeftMiniPanel:Hide()
RightMiniPanel:Hide()
end
local configtoggle = CreateFrame("Button", "ElvConfigToggle", Minimap)
if E.db.general.reminder.position == "LEFT" then
configtoggle:Point("TOPRIGHT", lminipanel, "TOPLEFT", (E.PixelMode and 1 or -1), 0)
configtoggle:Point("BOTTOMRIGHT", lminipanel, "BOTTOMLEFT", (E.PixelMode and 1 or -1), 0)
else
configtoggle:Point("TOPLEFT", rminipanel, "TOPRIGHT", (E.PixelMode and -1 or 1), 0)
configtoggle:Point("BOTTOMLEFT", rminipanel, "BOTTOMRIGHT", (E.PixelMode and -1 or 1), 0)
end
configtoggle:RegisterForClicks("AnyUp")
configtoggle:Width(E.RBRWidth)
configtoggle:SetTemplate(E.db.datatexts.panelTransparency and "Transparent" or "Default", true)
configtoggle.text = configtoggle:CreateFontString(nil, "OVERLAY")
configtoggle.text:FontTemplate(E.Libs.LSM:Fetch("font", E.db.datatexts.font), E.db.datatexts.fontSize, E.db.datatexts.fontOutline)
configtoggle.text:SetText("C")
configtoggle.text:SetPoint("CENTER")
configtoggle.text:SetJustifyH("CENTER")
configtoggle:SetScript("OnClick", function(_, btn)
if btn == "LeftButton" then
E:ToggleOptionsUI()
else
E:BGStats()
end
end)
configtoggle:SetScript("OnEnter", function(self)
GameTooltip:SetOwner(self, "ANCHOR_BOTTOMRIGHT", 0, -4)
GameTooltip:ClearLines()
GameTooltip:AddDoubleLine(L["Left Click:"], L["Toggle Configuration"], 1, 1, 1)
if E.db.datatexts.battleground then
GameTooltip:AddDoubleLine(L["Right Click:"], L["Show BG Texts"], 1, 1, 1)
end
GameTooltip:Show()
end)
configtoggle:SetScript("OnLeave", function()
GameTooltip:Hide()
end)
local f = CreateFrame("Frame", "BottomMiniPanel", Minimap)
f:SetPoint("BOTTOM", Minimap, "BOTTOM")
f:Width(120)
f:Height(20)
f:SetFrameLevel(Minimap:GetFrameLevel() + 5)
DT:RegisterPanel(f, 1, "ANCHOR_BOTTOM", 0, -10)
f = CreateFrame("Frame", "TopMiniPanel", Minimap)
f:SetPoint("TOP", Minimap, "TOP")
f:Width(120)
f:Height(20)
f:SetFrameLevel(Minimap:GetFrameLevel() + 5)
DT:RegisterPanel(f, 1, "ANCHOR_BOTTOM", 0, -10)
f = CreateFrame("Frame", "TopLeftMiniPanel", Minimap)
f:SetPoint("TOPLEFT", Minimap, "TOPLEFT")
f:Width(75)
f:Height(20)
f:SetFrameLevel(Minimap:GetFrameLevel() + 5)
DT:RegisterPanel(f, 1, "ANCHOR_BOTTOMLEFT", 0, -10)
f = CreateFrame("Frame", "TopRightMiniPanel", Minimap)
f:SetPoint("TOPRIGHT", Minimap, "TOPRIGHT")
f:Width(75)
f:Height(20)
f:SetFrameLevel(Minimap:GetFrameLevel() + 5)
DT:RegisterPanel(f, 1, "ANCHOR_BOTTOMRIGHT", 0, -10)
f = CreateFrame("Frame", "BottomLeftMiniPanel", Minimap)
f:SetPoint("BOTTOMLEFT", Minimap, "BOTTOMLEFT")
f:Width(75)
f:Height(20)
f:SetFrameLevel(Minimap:GetFrameLevel() + 5)
DT:RegisterPanel(f, 1, "ANCHOR_BOTTOMLEFT", 0, -10)
f = CreateFrame("Frame", "BottomRightMiniPanel", Minimap)
f:SetPoint("BOTTOMRIGHT", Minimap, "BOTTOMRIGHT")
f:Width(75)
f:Height(20)
f:SetFrameLevel(Minimap:GetFrameLevel() + 5)
DT:RegisterPanel(f, 1, "ANCHOR_BOTTOMRIGHT", 0, -10)
end
local function InitializeCallback()
LO:Initialize()
end
E:RegisterModule(LO:GetName(), InitializeCallback)