You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
2.6 KiB

local AS = unpack(AddOnSkins)
if not AS:CheckAddOn('Skada') then return end
local ES = AS.EmbedSystem
local _G = _G
local pairs = pairs
local wipe, tinsert = table.wipe, table.insert
local NumberToEmbed
ES.SkadaWindows = {}
function ES:SkadaWindow(window, width, height, point, relativeFrame, relativePoint, ofsx, ofsy)
if not window then return end
local barmod = _G.Skada.displays['bar']
if window.db.reversegrowth then
ofsy = 2
else
ofsy = 2 + (window.db.enabletitle and window.db.title.height or 0)
end
window.db.barwidth = width - 4
window.db.background.height = height - (window.db.enabletitle and window.db.title.height or 0) - AS:AdjustForTheme(4)
window.db.spark = false
window.db.barslocked = true
window.db.background.bordertexture = "None"
window.db.background.strata = relativeFrame:GetFrameStrata()
window.db.strata = relativeFrame:GetFrameStrata()
window.bargroup.ClearAllPoints = nil
window.bargroup:ClearAllPoints()
window.bargroup.ClearAllPoints = function() end
window.bargroup.SetPoint = nil
window.bargroup:SetPoint(point, relativeFrame, relativePoint, ofsx, -ofsy)
window.bargroup.SetPoint = function() end
window.bargroup:SetParent(relativeFrame)
window.bargroup:SetFrameLevel(relativeFrame:GetFrameLevel())
window.bargroup:SetBackdrop(nil)
if window.bargroup.backdrop then
AS:SetTemplate(window.bargroup.backdrop, AS:CheckOption('EmbedBackdropTransparent') and 'Transparent')
if AS:CheckOption('EmbedBackdrop') then
window.bargroup.backdrop:Show()
else
window.bargroup.backdrop:Hide()
end
end
barmod.ApplySettings(barmod, window)
end
function ES:Skada()
wipe(ES.SkadaWindows)
for _, window in pairs(_G.Skada:GetWindows()) do
tinsert(ES.SkadaWindows, window)
end
NumberToEmbed = AS:CheckOption('EmbedSystem') and 1 or 0
if AS:CheckOption('EmbedSystemDual') then
if AS:CheckOption('EmbedRight') == 'Skada' then NumberToEmbed = NumberToEmbed + 1 end
if AS:CheckOption('EmbedLeft') == 'Skada' then NumberToEmbed = NumberToEmbed + 1 end
end
if NumberToEmbed == 1 then
local EmbedParent = AS:CheckOption('EmbedSystemDual') and (AS:CheckOption('EmbedRight') == 'Skada' and ES.Right or ES.Left) or ES.Main
ES:SkadaWindow(ES.SkadaWindows[1], EmbedParent:GetWidth(), EmbedParent:GetHeight(), 'TOPLEFT', EmbedParent, 'TOPLEFT', 2, 0)
elseif NumberToEmbed == 2 then
ES:SkadaWindow(ES.SkadaWindows[1], ES.Left:GetWidth(), ES.Left:GetHeight(), 'TOPLEFT', ES.Left, 'TOPLEFT', 2, 0)
ES:SkadaWindow(ES.SkadaWindows[2], ES.Right:GetWidth(), ES.Right:GetHeight(), 'TOPRIGHT', ES.Right, 'TOPRIGHT', -2, 0)
end
end