You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.5 KiB
120 lines
3.5 KiB
local E, L, V, P, G = unpack(ElvUI)
|
|
local S = E:GetModule('Skins')
|
|
|
|
local _G = _G
|
|
local next, select = next, select
|
|
local hooksecurefunc = hooksecurefunc
|
|
|
|
function S:Blizzard_BindingUI()
|
|
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.binding) then return end
|
|
|
|
local KB = _G.KeyBindingFrame
|
|
for _, v in next, { 'defaultsButton', 'unbindButton', 'okayButton', 'cancelButton', 'quickKeybindButton', 'clickCastingButton' } do
|
|
S:HandleButton(KB[v])
|
|
end
|
|
|
|
_G.KeyBindingFrameScrollFrame:StripTextures()
|
|
S:HandleScrollBar(_G.KeyBindingFrameScrollFrameScrollBar)
|
|
|
|
S:HandleCheckBox(KB.characterSpecificButton)
|
|
KB.Header:StripTextures()
|
|
KB.Header:ClearAllPoints()
|
|
KB.Header:Point('TOP', KB, 'TOP', 0, -4)
|
|
KB:StripTextures()
|
|
KB:SetTemplate('Transparent')
|
|
|
|
KB.categoryList.NineSlice:SetTemplate('Transparent')
|
|
KB.bindingsContainer.NineSlice:SetTemplate('Transparent')
|
|
|
|
for i = 1, _G.KEY_BINDINGS_DISPLAYED, 1 do
|
|
local button1 = _G['KeyBindingFrameKeyBinding'..i..'Key1Button']
|
|
local button2 = _G['KeyBindingFrameKeyBinding'..i..'Key2Button']
|
|
button2:Point('LEFT', button1, 'RIGHT', 1, 0) -- Needed for new Pixel Perfect
|
|
end
|
|
|
|
hooksecurefunc('BindingButtonTemplate_SetupBindingButton', function(_, button)
|
|
if not button.IsSkinned then
|
|
local selected = button.selectedHighlight
|
|
selected:SetTexture(E.media.normTex)
|
|
selected:Point('TOPLEFT', 1, -1)
|
|
selected:Point('BOTTOMRIGHT', -1, 1)
|
|
selected:SetColorTexture(1, 1, 1, .25)
|
|
S:HandleButton(button)
|
|
|
|
button.IsSkinned = true
|
|
end
|
|
end)
|
|
|
|
local Quick = _G.QuickKeybindFrame
|
|
Quick:StripTextures()
|
|
Quick:SetTemplate('Transparent')
|
|
Quick.Header:StripTextures()
|
|
|
|
for _, v in next, { 'okayButton', 'defaultsButton', 'cancelButton' } do
|
|
S:HandleButton(Quick[v])
|
|
end
|
|
|
|
S:HandleCheckBox(Quick.characterSpecificButton)
|
|
end
|
|
|
|
S:AddCallbackForAddon('Blizzard_BindingUI')
|
|
|
|
local function updateNewGlow(self)
|
|
if self.NewOutline:IsShown() then
|
|
self.backdrop:SetBackdropBorderColor(0, .8, 0)
|
|
else
|
|
self.backdrop:SetBackdropBorderColor(0, 0, 0)
|
|
end
|
|
end
|
|
|
|
local function HandleScrollChild(self)
|
|
for i = 1, self.ScrollTarget:GetNumChildren() do
|
|
local child = select(i, self.ScrollTarget:GetChildren())
|
|
local icon = child and child.Icon
|
|
if icon and not icon.IsSkinned then
|
|
S:HandleIcon(icon)
|
|
icon:SetPoint('LEFT', 3, 0)
|
|
|
|
child.Background:Hide()
|
|
child:CreateBackdrop(nil, nil, nil, true, nil, nil, nil, true)
|
|
|
|
S:HandleButton(child.DeleteButton)
|
|
child.DeleteButton:Size(20)
|
|
child.FrameHighlight:SetInside(child.bg)
|
|
child.FrameHighlight:SetColorTexture(1, 1, 1, .20)
|
|
|
|
child.NewOutline:SetTexture('')
|
|
child.BindingText:FontTemplate()
|
|
hooksecurefunc(child, 'Init', updateNewGlow)
|
|
|
|
icon.IsSkinned = true
|
|
end
|
|
end
|
|
end
|
|
|
|
function S:Blizzard_ClickBindingUI()
|
|
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.binding) then return end
|
|
|
|
local frame = _G.ClickBindingFrame
|
|
S:HandlePortraitFrame(frame)
|
|
|
|
frame.TutorialButton.Ring:Hide()
|
|
frame.TutorialButton:Point('TOPLEFT', frame, 'TOPLEFT', -12, 12)
|
|
|
|
for _, v in next, { 'ResetButton', 'AddBindingButton', 'SaveButton' } do
|
|
S:HandleButton(frame[v])
|
|
end
|
|
|
|
S:HandleTrimScrollBar(frame.ScrollBar)
|
|
frame.ScrollBoxBackground:Hide()
|
|
hooksecurefunc(frame.ScrollBox, 'Update', HandleScrollChild)
|
|
|
|
-- Tutorial Frame ugly af WIP
|
|
local tutorial = frame.TutorialFrame
|
|
tutorial.NineSlice:StripTextures()
|
|
tutorial.TitleBg:Hide()
|
|
tutorial:SetTemplate('Transparent')
|
|
S:HandleCloseButton(tutorial.CloseButton)
|
|
end
|
|
|
|
S:AddCallbackForAddon('Blizzard_ClickBindingUI')
|
|
|