vanilla-wow-addons – Rev 1
?pathlinks?
-- Yarr, we be pirates! oSkin/Skinner code. Tired of fucking supporting both mods and a bastard child of the first at once.
local _G = getfenv(0)
local backdrop = {
bgFile = "Interface\\ChatFrame\\ChatFrameBackground", tile = true, tileSize = 16,
edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", edgeSize = 16,
insets = {left = 4, right = 4, top = 4, bottom = 4},
}
local gradientOn = {"VERTICAL", .1, .1, .1, 0, .25, .25, .25, 1}
local gradientOff = {"VERTICAL", 0, 0, 0, 1, 0, 0, 0, 1}
-- Pickup settings from installed mods
local sdb = (oSkin and oSkin.db.profile or nil) or (Skinner and Skinner.db.profile or nil) or {
BackdropBorder = {r = 0.5, g = 0.5, b = 0.5, a = 1},
Backdrop = {r = 0, g = 0, b = 0, a = 0.9},
FadeHeight = {enable = false, value = 500, force = false},
Gradient = true,
}
function XLoot:Skin(frame, header, bba, ba, fh, bd)
if not frame then return end
frame:SetBackdrop(bd or backdrop)
frame:SetBackdropBorderColor(sdb.BackdropBorder.r or .5, sdb.BackdropBorder.g or .5, sdb.BackdropBorder.b or .5, bba or sdb.BackdropBorder.a or 1)
frame:SetBackdropColor(sdb.Backdrop.r or 0, sdb.Backdrop.g or 0, sdb.Backdrop.b or 0, ba or sdb.Backdrop.a or .9)
if not frame.tfade then frame.tfade = frame:CreateTexture(nil, "BORDER") end
frame.tfade:SetTexture("Interface\\ChatFrame\\ChatFrameBackground")
if sdb.FadeHeight.enable and (sdb.FadeHeight.force or not fh) then
fh = sdb.FadeHeight.value <= math.ceil(frame:GetHeight()) and sdb.FadeHeight.value or math.ceil(frame:GetHeight())
end
frame.tfade:SetPoint("TOPLEFT", frame, "TOPLEFT", 4, -4)
if fh then frame.tfade:SetPoint("BOTTOMRIGHT", frame, "TOPRIGHT", -4, -fh)
else frame.tfade:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -4, 4) end
frame.tfade:SetBlendMode("ADD")
frame.tfade:SetGradientAlpha(unpack(sdb.Gradient and gradientOn or gradientOff))
if header and _G[frame:GetName().."Header"] then
_G[frame:GetName().."Header"]:Hide()
_G[frame:GetName().."Header"]:SetPoint("TOP", frame, "TOP", 0, 7)
end
end
function XLoot:QualityBorder(button)
local frame = button.wrapper or button
local border = frame:CreateTexture(button:GetName() .. "QualBorder", "OVERLAY")
border:SetTexture("Interface\\Buttons\\UI-ActionButton-Border")
border:SetBlendMode("ADD")
border:SetAlpha(0.5)
border:SetHeight(button:GetHeight()*1.8)
border:SetWidth(button:GetWidth()*1.8)
border:SetPoint("CENTER", frame, "CENTER", 0, 1)
border:Hide()
return border
end
function XLoot:QualityBorderResize(frame, hmult, ymult, hoff, yoff)
local border = _G[frame:GetName().."QualBorder"]
local width, height = frame:GetWidth(), frame:GetHeight()
border:SetHeight(height*(ymult or 1.62))
border:SetWidth(width*(hmult or 1.72))
border:SetPoint("CENTER", frame, "CENTER", hoff or 5, yoff or 1)
end
function XLoot:BackdropFrame(frame, bgcolor, bordercolor)
frame:SetBackdrop( { bgFile = "Interface/Tooltips/UI-Tooltip-Background",
edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
tile = true, tileSize = 32, edgeSize = 15,
insets = { left = 4, right = 4, top = 4, bottom = 4 }})
frame:SetBackdropColor(unpack(bgcolor))
frame:SetBackdropBorderColor(unpack(bordercolor))
end
function XLoot:ItemButtonWrapper(button, woff, hoff, edgesize, borderinset)
local wrapper = button.wrapper or CreateFrame("Frame", button:GetName().."Wrapper", button)
wrapper:SetWidth(button:GetWidth()+(woff or 10))
wrapper:SetHeight(button:GetHeight()+(hoff or 10))
wrapper:ClearAllPoints()
wrapper:SetPoint("CENTER", button, "CENTER")
self:Skin(wrapper)
if edgesize then
local backdrop = wrapper:GetBackdrop()
backdrop.edgeSize = edgesize
wrapper:SetBackdrop(backdrop)
end
wrapper:SetBackdropColor(1, 1, 1, 0)
wrapper:SetBackdropBorderColor(.7, .7, .7, 1)
wrapper:Show()
return wrapper
end
-- Substitute oSkin function, full credit to oSkin devs :)
function XLoot:oSkinTooltipModded(frame)
if not frame.tfade then frame.tfade = frame:CreateTexture(nil, "BORDER") end
frame.tfade:SetTexture("Interface\\ChatFrame\\ChatFrameBackground")
frame.tfade:SetPoint("TOPLEFT", frame, "TOPLEFT",1,-1)
frame.tfade:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT",-1,1)
frame.tfade:SetBlendMode("ADD")
frame.tfade.alphagradient = { "VERTICAL", .1, .1, .1, 0, .2, .2, .2, 0.6 }
frame.tfade:SetGradientAlpha("VERTICAL", .1, .1, .1, 0, .2, .2, .2, 0.6)
frame.tfade:SetPoint("TOPLEFT", frame, "TOPLEFT", 6, -6)
frame.tfade:SetPoint("BOTTOMRIGHT", frame, "TOPRIGHT", -6, -30)
end