local A, L = ...
-----------------------------
-- rSkin Global
-----------------------------
rSkin = CreateFrame("Frame")
rSkin.addonName = A
-- init skins table
rSkin.skins = {}
L.C = {
style = "ZorkUI",
backdrop = rLib.CopyTable(oUF_SimpleConfig.backdrop), -- default bd
font = oUF_SimpleConfig.fonts.expressway, -- font
scale = oUF_SimpleConfig.globalscale, -- scale
bar = {
small = {150, 20}, -- small size
big = rLib.CopyTable(oUF_SimpleConfig.target.size), -- big size
tex = oUF_SimpleConfig.textures.statusbar, -- bar texture
space = {
small = 4,
big = 8,
}
},
button = rLib.CopyTable(rButtonTemplate_Zork_ActionButtonConfig), -- btn
thin = rLib.CopyTable(oUF_SimpleConfig.backdrop), -- thin bd
}
L.C.thin.edgeSize = 2
L.C.thin.inset = 2
L.C.thin.insets = {left=2,right=2,top=2,bottom=2}
L.C.thin.bgColor = {0.23,0.23,0.23,0.7}
L.C.thin.edgeColor = {0,0,0,1}
L.C.button.backdrop.bgColor = L.C.button.backdrop.backgroundColor
L.C.button.backdrop.edgeColor = L.C.button.backdrop.borderColor
L.C.button.backdrop.inset = 3
-- defaults vars
local defaults = {
resets = {
bigwigs = true,
dbm = true,
details = true,
weakauras = true,
lstoasts = true,
threatclassic2 = true,
dominos = true,
}
}
if (not rSkinDB) then
rSkinDB = rLib.CopyTable(defaults)
end
--CreateBackdrop
local function CreateBackdrop(self, relativeTo, anotherBackdrop)
local backdrop = anotherBackdrop or oUF_SimpleConfig.backdrop
local parent = self.IsObjectType and self:IsObjectType('Texture') and self:GetParent() or self
local bd = CreateFrame("Frame", nil, parent, BackdropTemplateMixin and "BackdropTemplate")
if (parent:GetFrameLevel() - 1) >= 0 then
bd:SetFrameLevel(parent:GetFrameLevel() - 1)
else
bd:SetFrameLevel(0)
end
-- bd:SetFrameLevel(parent:GetFrameLevel()-1 or 0)
bd:SetPoint("TOPLEFT", relativeTo or self, "TOPLEFT", -backdrop.inset, backdrop.inset)
bd:SetPoint("BOTTOMRIGHT", relativeTo or self, "BOTTOMRIGHT", backdrop.inset, -backdrop.inset)
bd:SetBackdrop(backdrop)
bd:SetBackdropColor(unpack(backdrop.bgColor))
bd:SetBackdropBorderColor(unpack(backdrop.edgeColor))
return bd
end
L.CreateBackdrop = CreateBackdrop
local function Dummy() return end
L.Dummy = Dummy
local function ThrowError(err, message)
if not err then return end
err = format("%s: %s Error\n%s", A, message, err)
if _G.BaudErrorFrameHandler then
_G.BaudErrorFrameHandler(err)
else
_G.ScriptErrorsFrame:OnError(err, false, false)
end
end
function rSkin:RegisterSkin(name, func)
if not self.skins[name] then
self.skins[name] = func
end
end
function rSkin:OnLogin()
print("|cffffa6c9"..A.." loaded.|r")
for name, func in next, self.skins do
if name and type(func) == "function" then
local _, catch = pcall(func)
ThrowError(catch, format("%s Skin", name))
end
end
end
rSkin:RegisterEvent("PLAYER_LOGIN")
-- Handle the events as they happen
rSkin:SetScript("OnEvent", function(self, event, ...)
if (event == "PLAYER_LOGIN") then
self:OnLogin()
end
end)