init
This commit is contained in:
@@ -0,0 +1,521 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user