mirror of
https://github.com/brues-code/pfUI.git
synced 2026-10-31 16:06:57 +00:00
Spell buttons kept the template's indicator Model for their sweep. The
Spellbook skin now creates a native Cooldown for each one.
Taking the "<button>Cooldown" name was meant to point the FrameXML
lookups at the new frame, but 1.12 binds a frame's name only while that
global is unset. The bag slot Cooldowns from a721f788 were never used:
ContainerFrame_UpdateCooldown still drove the Model, so bags lost their
timer text, ignored Reverse Cooldown Animation and were hidden by Hide
Foreign Cooldown Animations. Both places now rebind the global by hand.
75 lines
2.9 KiB
Lua
75 lines
2.9 KiB
Lua
pfUI:RegisterSkin("Spellbook", function ()
|
|
local rawborder, border = GetBorderSize()
|
|
local bpad = rawborder > 1 and border - GetPerfectPixel() or GetPerfectPixel()
|
|
|
|
StripTextures(SpellBookFrame)
|
|
CreateBackdrop(SpellBookFrame, nil, nil, .75)
|
|
CreateBackdropShadow(SpellBookFrame)
|
|
|
|
SpellBookFrame.backdrop:SetPoint("TOPLEFT", 10, -10)
|
|
SpellBookFrame.backdrop:SetPoint("BOTTOMRIGHT", -30, 72)
|
|
SpellBookFrame:SetHitRectInsets(10,30,10,72)
|
|
EnableMovable(SpellBookFrame)
|
|
|
|
SpellBookTitleText:ClearAllPoints()
|
|
SpellBookTitleText:SetPoint("TOP", SpellBookFrame.backdrop, "TOP", 0, -10)
|
|
|
|
SpellBookFrameTabButton1:ClearAllPoints()
|
|
SpellBookFrameTabButton1:SetPoint("TOPLEFT", SpellBookFrame.backdrop, "BOTTOMLEFT", bpad, -(border + (border == 1 and 1 or 2)))
|
|
for i=1, 3 do
|
|
local tab = _G["SpellBookFrameTabButton"..i]
|
|
local lastTab = _G["SpellBookFrameTabButton"..(i-1)]
|
|
if lastTab then
|
|
tab:ClearAllPoints()
|
|
tab:SetPoint("LEFT", lastTab, "RIGHT", border*2 + 1, 0)
|
|
end
|
|
SkinTab(tab)
|
|
end
|
|
|
|
for i=1,SPELLS_PER_PAGE do
|
|
local button = _G["SpellButton"..i]
|
|
local texture = _G["SpellButton"..i.."IconTexture"]
|
|
|
|
StripTextures(button)
|
|
SkinButton(button, nil, nil, nil, texture)
|
|
|
|
-- native cooldown frame in place of the template's indicator Model.
|
|
-- SpellButton_UpdateButton reads the "<button>Cooldown" global on every
|
|
-- update. 1.12 binds a frame's name only while that global is unset, so
|
|
-- the global is rebound by hand; the Model starts hidden and nothing
|
|
-- reaches it after that
|
|
local cdname = "SpellButton"..i.."Cooldown"
|
|
_G[cdname] = CreateFrame("Cooldown", cdname, button, "CooldownFrameTemplate")
|
|
|
|
_G["SpellButton"..i.."SubSpellName"]:SetTextColor(1, 1, 1)
|
|
_G["SpellButton"..i.."AutoCastable"]:SetTexture("Interface\\Buttons\\UI-AutoCastableOverlay")
|
|
_G["SpellButton"..i.."Highlight"]:SetTexture("")
|
|
_G["SpellButton"..i.."Highlight"].SetTexture = function(self, tex) return end
|
|
end
|
|
|
|
SpellBookSkillLineTab1:ClearAllPoints()
|
|
SpellBookSkillLineTab1:SetPoint("TOPLEFT", SpellBookFrame.backdrop, "TOPRIGHT", border + (border == 1 and 1 or 2), -30)
|
|
for i = 1, MAX_SKILLLINE_TABS do
|
|
local button = _G["SpellBookSkillLineTab"..i]
|
|
local lastbutton = _G["SpellBookSkillLineTab"..(i-1)]
|
|
local texture = _G["SpellBookSkillLineTab"..i]:GetNormalTexture()
|
|
|
|
StripTextures(button)
|
|
SkinButton(button, nil, nil, nil, texture)
|
|
|
|
button:SetScale(1.1)
|
|
texture:SetTexCoord(.07,.93,.07,.93)
|
|
|
|
if lastbutton then
|
|
button:ClearAllPoints()
|
|
button:SetPoint("TOP", lastbutton, "BOTTOM", 0, - (border + (border == 1 and 1 or 2) + bpad))
|
|
end
|
|
end
|
|
|
|
SkinArrowButton(SpellBookPrevPageButton, "left", 18)
|
|
SkinArrowButton(SpellBookNextPageButton, "right", 18)
|
|
|
|
SkinCloseButton(SpellBookCloseButton, SpellBookFrame.backdrop, -6, -6)
|
|
SpellBookPageText:SetTextColor(1, 1, 1)
|
|
end)
|