136 lines
3.6 KiB
Lua
136 lines
3.6 KiB
Lua
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
|
local S = E:GetModule('Skins')
|
|
|
|
local _G = _G
|
|
local select = select
|
|
local hooksecurefunc = hooksecurefunc
|
|
local IsInJailersTower = IsInJailersTower
|
|
|
|
local function StyleText(text)
|
|
if text.IsSkinned then return end
|
|
text:SetTextColor(1, 1, 1)
|
|
text.SetTextColor = E.noop
|
|
text.IsSkinned = true
|
|
end
|
|
|
|
local function HandleFirstOptionButton(button)
|
|
if not button then return end
|
|
|
|
button:StripTextures(true)
|
|
S:HandleButton(button)
|
|
end
|
|
|
|
local function HandleSecondOptionButton(button)
|
|
if not button then return end
|
|
|
|
S:HandleButton(button, nil, nil, nil, nil, nil, nil, true)
|
|
end
|
|
|
|
local function HandleJailerOptionButton(button)
|
|
if not button or button.IsSkinned then return end
|
|
|
|
button:StripTextures(true)
|
|
button:CreateBackdrop()
|
|
button.backdrop:SetAllPoints()
|
|
|
|
button:HookScript('OnEnter', S.SetModifiedBackdrop)
|
|
button:HookScript('OnLeave', S.SetOriginalBackdrop)
|
|
|
|
button.IsSkinned = true
|
|
end
|
|
|
|
function S:Blizzard_PlayerChoiceUI()
|
|
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.playerChoice) then return end
|
|
|
|
local frame = _G.PlayerChoiceFrame
|
|
hooksecurefunc(frame, 'Update', function()
|
|
if not frame.IsSkinned then
|
|
frame.BlackBackground:SetAlpha(0)
|
|
frame.Background:SetAlpha(0)
|
|
frame.NineSlice:SetAlpha(0)
|
|
frame.BorderFrame.Header:SetAlpha(0)
|
|
|
|
frame:CreateBackdrop('Transparent')
|
|
|
|
frame.Title:DisableDrawLayer('BACKGROUND')
|
|
frame.Title.Text:SetTextColor(1, .8, 0)
|
|
|
|
S:HandleCloseButton(frame.CloseButton)
|
|
frame.CloseButton.Border:SetAlpha(0)
|
|
|
|
frame.IsSkinned = true
|
|
end
|
|
|
|
frame.backdrop:SetShown(not IsInJailersTower())
|
|
|
|
for i = 1, frame:GetNumOptions() do
|
|
local option = frame.Options[i]
|
|
if E.private.skins.parchmentRemoverEnable then
|
|
option.Header.Text:SetTextColor(1, .8, 0)
|
|
option.OptionText:SetTextColor(1, 1, 1)
|
|
|
|
option.Background:SetAlpha(0)
|
|
option.Header.Ribbon:SetAlpha(0)
|
|
end
|
|
|
|
-- for some reason the buttons are different. W T F
|
|
if IsInJailersTower() then
|
|
if option.OptionButtonsContainer.button1 then
|
|
HandleJailerOptionButton(option.OptionButtonsContainer.button1)
|
|
end
|
|
if option.OptionButtonsContainer.button2 then
|
|
HandleJailerOptionButton(option.OptionButtonsContainer.button2)
|
|
end
|
|
else
|
|
if option.OptionButtonsContainer.button1 then
|
|
HandleFirstOptionButton(option.OptionButtonsContainer.button1)
|
|
end
|
|
if option.OptionButtonsContainer.button2 then
|
|
HandleSecondOptionButton(option.OptionButtonsContainer.button2)
|
|
end
|
|
end
|
|
|
|
for i = 1, option.WidgetContainer:GetNumChildren() do
|
|
local child = select(i, option.WidgetContainer:GetChildren())
|
|
if child then
|
|
if child.Text then
|
|
if E.private.skins.parchmentRemoverEnable then
|
|
child.Text:SetTextColor(1, 1, 1)
|
|
end
|
|
end
|
|
|
|
if child.Spell then
|
|
if not child.Spell.isSkinned then
|
|
child.Spell.Border:SetTexture('')
|
|
child.Spell.IconMask:Hide()
|
|
|
|
S:HandleIcon(child.Spell.Icon)
|
|
|
|
child.Spell.isSkinned = true
|
|
end
|
|
|
|
if E.private.skins.parchmentRemoverEnable then
|
|
child.Spell.Text:SetTextColor(1, 1, 1)
|
|
end
|
|
end
|
|
|
|
for j = 1, child:GetNumChildren() do
|
|
local child2 = select(j, child:GetChildren())
|
|
if child2 then
|
|
if child2.Text then StyleText(child2.Text) end
|
|
if child2.LeadingText then StyleText(child2.LeadingText) end
|
|
if child2.Icon and not child2.Icon.isSkinned then
|
|
S:HandleIcon(child2.Icon)
|
|
|
|
child2.Icon.isSkinned = true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
|
|
S:AddCallbackForAddon('Blizzard_PlayerChoiceUI')
|