Files
coa-elvui/ElvUI_AddOnSkins/Skins/Addons/skada.lua
T

117 lines
4.1 KiB
Lua

local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule("Skins")
local AS = E:GetModule("AddOnSkins")
if not AS:IsAddonLODorEnabled("Skada") then return end
-- Skada r301
-- https://www.curseforge.com/wow/addons/skada/files/458800
S:AddCallbackForAddon("Skada", "Skada", function()
if not E.private.addOnSkins.Skada then return end
if Skada.revisited then
hooksecurefunc(Skada.displays.bar, "AddDisplayOptions", function(_, _, options)
options.windowoptions = nil
options.titleoptions.args.texture = nil
options.titleoptions.args.bordertexture = nil
options.titleoptions.args.thickness = nil
options.titleoptions.args.margin = nil
options.titleoptions.args.color = nil
end)
AS:SkinLibrary("LibUIDropDownMenu")
end
hooksecurefunc(Skada.displays["bar"], "ApplySettings", function(_, win)
local skada = win.bargroup
if win.db.enabletitle then
skada.button:SetBackdrop(nil)
if not skada.button.backdrop then
skada.button:CreateBackdrop()
end
if skada.button.backdrop then
skada.button.backdrop:SetFrameLevel(skada.button:GetFrameLevel())
skada.button.backdrop:SetTemplate(E.db.addOnSkins.skadaTitleTemplate, E.db.addOnSkins.skadaTitleTemplate == "Default" and E.db.addOnSkins.skadaTitleTemplateGloss or false)
skada.button.backdrop:ClearAllPoints()
skada.button.backdrop:Point("TOPLEFT", skada.button, -E.Border, win.db.reversegrowth and 0 or E.Border)
skada.button.backdrop:Point("BOTTOMRIGHT", skada.button, E.Border, win.db.reversegrowth and -E.Border or E.Border)
end
end
if Skada.revisited then
skada:SetBackdrop(nil) -- remove default backdrop
if not skada.backdrop then
skada:CreateBackdrop(E.db.addOnSkins.skadaTemplate, E.db.addOnSkins.skadaTemplate == "Default" and E.db.addOnSkins.skadaTemplateGloss or false)
else
skada.backdrop:SetTemplate(E.db.addOnSkins.skadaTemplate, E.db.addOnSkins.skadaTemplate == "Default" and E.db.addOnSkins.skadaTemplateGloss or false)
end
elseif win.db.enablebackground then
skada.bgframe:SetTemplate(E.db.addOnSkins.skadaTemplate, E.db.addOnSkins.skadaTemplate == "Default" and E.db.addOnSkins.skadaTemplateGloss or false)
if skada.bgframe then
skada.bgframe:ClearAllPoints()
if win.db.reversegrowth then
skada.bgframe:SetPoint("LEFT", skada.button, "LEFT", -E.Border, 0)
skada.bgframe:SetPoint("RIGHT", skada.button, "RIGHT", E.Border, 0)
skada.bgframe:SetPoint("BOTTOM", skada.button, "TOP", 0, win.db.enabletitle and E.Spacing or -win.db.barheight - E.Border)
else
skada.bgframe:SetPoint("LEFT", skada.button, "LEFT", -E.Border, 0)
skada.bgframe:SetPoint("RIGHT", skada.button, "RIGHT", E.Border, 0)
skada.bgframe:SetPoint("TOP", skada.button, "BOTTOM", 0, win.db.enabletitle and -E.Spacing or win.db.barheight + E.Border)
end
end
end
end)
local EMB = E:GetModule("EmbedSystem")
hooksecurefunc(Skada, "CreateWindow", function()
if EMB:CheckEmbed("Skada") then
EMB:EmbedSkada()
end
end)
hooksecurefunc(Skada, "DeleteWindow", function()
if EMB:CheckEmbed("Skada") then
EMB:EmbedSkada()
end
end)
if Skada.revisited then
hooksecurefunc(Skada, "UpdateDisplay", function()
if EMB:CheckEmbed("Skada") then
EMB:EmbedSkada()
end
end)
end
hooksecurefunc(Skada, "SetTooltipPosition", function(self, tt, frame)
if self.db.profile.tooltippos == "default" then
if not E:HasMoverBeenMoved("ElvTooltipMover") then
if ElvUI_ContainerFrame and ElvUI_ContainerFrame:IsShown() then
tt:Point("BOTTOMRIGHT", ElvUI_ContainerFrame, "TOPRIGHT", 0, 18)
elseif RightChatPanel:IsShown() and RightChatPanel:GetAlpha() == 1 then
tt:Point("BOTTOMRIGHT", RightChatPanel, "TOPRIGHT", 0, 18)
else
tt:Point("BOTTOMRIGHT", RightChatPanel, "BOTTOMRIGHT", 0, 18)
end
else
local point = E:GetScreenQuadrant(ElvTooltipMover)
if point == "TOPLEFT" then
tt:SetPoint("TOPLEFT", ElvTooltipMover)
elseif point == "TOPRIGHT" then
tt:SetPoint("TOPRIGHT", ElvTooltipMover)
elseif point == "BOTTOMLEFT" or point == "LEFT" then
tt:SetPoint("BOTTOMLEFT", ElvTooltipMover)
else
tt:SetPoint("BOTTOMRIGHT", ElvTooltipMover)
end
end
end
end)
end)