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

61 lines
2.8 KiB
Lua

local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local UF = E:GetModule("UnitFrames")
--Lua functions
--WoW API / Variables
local CreateFrame = CreateFrame
function UF:Construct_InfoPanel(frame)
local infoPanel = CreateFrame("Frame", nil, frame)
infoPanel:SetFrameLevel(7) --Health is 10 and filled power is 5 by default
local thinBorders = self.thinBorders
infoPanel:CreateBackdrop(nil, true, nil, thinBorders, true)
return infoPanel
end
function UF:Configure_InfoPanel(frame, noTemplateChange)
if not frame.VARIABLES_SET then return end
local db = frame.db
if frame.USE_INFO_PANEL then
frame.InfoPanel:Show()
frame.InfoPanel:ClearAllPoints()
if frame.ORIENTATION == "RIGHT" and frame.unitframeType ~= "arena" then
frame.InfoPanel:Point("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -frame.BORDER - frame.SPACING, frame.BORDER + frame.SPACING)
if frame.USE_RAGEBAR and not frame.USE_INSET_RAGEBAR and not frame.RAGEBAR_DETACHED then
frame.InfoPanel:Point("TOPLEFT", frame.Rage.backdrop, "BOTTOMLEFT", frame.BORDER, -(frame.SPACING*3))
elseif frame.USE_ENERGYBAR and not frame.USE_INSET_ENERGYBAR and not frame.ENERGYBAR_DETACHED then
frame.InfoPanel:Point("TOPLEFT", frame.Energy.backdrop, "BOTTOMLEFT", frame.BORDER, -(frame.SPACING*3))
elseif frame.USE_POWERBAR and not frame.USE_INSET_POWERBAR and not frame.POWERBAR_DETACHED then
frame.InfoPanel:Point("TOPLEFT", frame.Power.backdrop, "BOTTOMLEFT", frame.BORDER, -(frame.SPACING*3))
else
frame.InfoPanel:Point("TOPLEFT", frame.Health.backdrop, "BOTTOMLEFT", frame.BORDER, -(frame.SPACING*3))
end
else
frame.InfoPanel:Point("BOTTOMLEFT", frame, "BOTTOMLEFT", frame.BORDER + frame.SPACING, frame.BORDER + frame.SPACING)
if frame.USE_RAGEBAR and not frame.USE_INSET_RAGEBAR and not frame.RAGEBAR_DETACHED then
frame.InfoPanel:Point("TOPRIGHT", frame.Rage.backdrop, "BOTTOMRIGHT", -frame.BORDER, -(frame.SPACING*3))
elseif frame.USE_ENERGYBAR and not frame.USE_INSET_ENERGYBAR and not frame.ENERGYBAR_DETACHED then
frame.InfoPanel:Point("TOPRIGHT", frame.Energy.backdrop, "BOTTOMRIGHT", -frame.BORDER, -(frame.SPACING*3))
elseif frame.USE_POWERBAR and not frame.USE_INSET_POWERBAR and not frame.POWERBAR_DETACHED then
frame.InfoPanel:Point("TOPRIGHT", frame.Power.backdrop, "BOTTOMRIGHT", -frame.BORDER, -(frame.SPACING*3))
else
frame.InfoPanel:Point("TOPRIGHT", frame.Health.backdrop, "BOTTOMRIGHT", -frame.BORDER, -(frame.SPACING*3))
end
end
if (not noTemplateChange) then
local thinBorders = self.thinBorders
if db.infoPanel.transparent then
frame.InfoPanel.backdrop:SetTemplate("Transparent", nil, nil, thinBorders, true)
else
frame.InfoPanel.backdrop:SetTemplate(nil, true, nil, thinBorders, true)
end
end
else
frame.InfoPanel:Hide()
end
end