261 lines
7.4 KiB
Lua
261 lines
7.4 KiB
Lua
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
|
local S = E:GetModule("Skins")
|
|
|
|
--Lua functions
|
|
local _G = _G
|
|
local type = type
|
|
local unpack = unpack
|
|
--WoW API / Variables
|
|
|
|
S:AddCallback("Skin_Misc", function()
|
|
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.misc then return end
|
|
|
|
-- ESC/Menu Buttons
|
|
EscapeMenu:StripTextures()
|
|
EscapeMenu:CreateBackdrop("Transparent")
|
|
|
|
EscapeMenuHeader:Point("TOP", 0, 7)
|
|
|
|
for _, section in ipairs(EscapeMenu.sections) do
|
|
for _, button in ipairs(section) do
|
|
S:HandleButton(button)
|
|
end
|
|
end
|
|
|
|
-- Static Popups
|
|
for i = 1, 4 do
|
|
local staticPopup = _G["StaticPopup"..i]
|
|
local itemFrame = _G["StaticPopup"..i.."ItemFrame"]
|
|
local itemFrameBox = _G["StaticPopup"..i.."EditBox"]
|
|
local itemFrameTexture = _G["StaticPopup"..i.."ItemFrameIconTexture"]
|
|
local itemFrameNormal = _G["StaticPopup"..i.."ItemFrameNormalTexture"]
|
|
local itemFrameName = _G["StaticPopup"..i.."ItemFrameNameFrame"]
|
|
local closeButton = _G["StaticPopup"..i.."CloseButton"]
|
|
local wideBox = _G["StaticPopup"..i.."WideEditBox"]
|
|
|
|
staticPopup:SetTemplate("Transparent")
|
|
|
|
S:HandleEditBox(itemFrameBox)
|
|
itemFrameBox.backdrop:Point("TOPLEFT", -2, -4)
|
|
itemFrameBox.backdrop:Point("BOTTOMRIGHT", 2, 4)
|
|
|
|
S:HandleEditBox(_G["StaticPopup"..i.."MoneyInputFrameGold"])
|
|
S:HandleEditBox(_G["StaticPopup"..i.."MoneyInputFrameSilver"])
|
|
S:HandleEditBox(_G["StaticPopup"..i.."MoneyInputFrameCopper"])
|
|
|
|
for j = 1, itemFrameBox:GetNumRegions() do
|
|
local region = select(j, itemFrameBox:GetRegions())
|
|
if region and region:GetObjectType() == "Texture" then
|
|
if region:GetTexture() == "Interface\\ChatFrame\\UI-ChatInputBorder-Left" or region:GetTexture() == "Interface\\ChatFrame\\UI-ChatInputBorder-Right" then
|
|
region:Kill()
|
|
end
|
|
end
|
|
end
|
|
|
|
closeButton:StripTextures()
|
|
S:HandleCloseButton(closeButton, staticPopup)
|
|
|
|
itemFrame:GetNormalTexture():Kill()
|
|
itemFrame:SetTemplate()
|
|
itemFrame:StyleButton()
|
|
|
|
hooksecurefunc("StaticPopup_Show", function(which, _, _, data)
|
|
local info = StaticPopupDialogs[which]
|
|
if not info then return nil end
|
|
|
|
if info.hasItemFrame then
|
|
if data and type(data) == "table" then
|
|
if data.color then
|
|
itemFrame:SetBackdropBorderColor(unpack(data.color))
|
|
else
|
|
itemFrame:SetBackdropBorderColor(1, 1, 1, 1)
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
itemFrameTexture:SetTexCoord(unpack(E.TexCoords))
|
|
itemFrameTexture:SetInside()
|
|
|
|
itemFrameNormal:SetAlpha(0)
|
|
itemFrameName:Kill()
|
|
|
|
select(8, wideBox:GetRegions()):Hide()
|
|
S:HandleEditBox(wideBox)
|
|
wideBox:Height(22)
|
|
|
|
for j = 1, 3 do
|
|
S:HandleButton(_G["StaticPopup"..i.."Button"..j])
|
|
end
|
|
end
|
|
|
|
-- Other Frames
|
|
TicketStatusFrameButton:SetTemplate("Transparent")
|
|
AutoCompleteBox:SetTemplate("Transparent")
|
|
ConsolidatedBuffsTooltip:SetTemplate("Transparent")
|
|
--ResInSafeZoneButton
|
|
|
|
-- BNToast Frame
|
|
BNToastFrame:SetTemplate("Transparent")
|
|
|
|
BNToastFrameCloseButton:Size(32)
|
|
BNToastFrameCloseButton:Point("TOPRIGHT", "BNToastFrame", 4, 4)
|
|
|
|
S:HandleCloseButton(BNToastFrameCloseButton, BNToastFrame)
|
|
|
|
-- Ready Check Frame
|
|
ReadyCheckFrame:EnableMouse(true)
|
|
ReadyCheckFrame:SetTemplate("Transparent")
|
|
|
|
S:HandleButton(ReadyCheckFrameYesButton)
|
|
ReadyCheckFrameYesButton:SetParent(ReadyCheckFrame)
|
|
ReadyCheckFrameYesButton:ClearAllPoints()
|
|
ReadyCheckFrameYesButton:Point("TOPRIGHT", ReadyCheckFrame, "CENTER", -3, -5)
|
|
|
|
S:HandleButton(ReadyCheckFrameNoButton)
|
|
ReadyCheckFrameNoButton:SetParent(ReadyCheckFrame)
|
|
ReadyCheckFrameNoButton:ClearAllPoints()
|
|
ReadyCheckFrameNoButton:Point("TOPLEFT", ReadyCheckFrame, "CENTER", 4, -5)
|
|
|
|
ReadyCheckFrameText:SetParent(ReadyCheckFrame)
|
|
ReadyCheckFrameText:Point("TOP", 0, -15)
|
|
ReadyCheckFrameText:SetTextColor(1, 1, 1)
|
|
|
|
ReadyCheckListenerFrame:SetAlpha(0)
|
|
|
|
-- Coin PickUp Frame
|
|
CoinPickupFrame:StripTextures()
|
|
CoinPickupFrame:SetTemplate("Transparent")
|
|
|
|
S:HandleButton(CoinPickupOkayButton)
|
|
S:HandleButton(CoinPickupCancelButton)
|
|
|
|
-- Zone Text Frame
|
|
ZoneTextFrame:ClearAllPoints()
|
|
ZoneTextFrame:Point("TOP", UIParent, 0, -128)
|
|
|
|
-- Stack Split Frame
|
|
StackSplitFrame:SetTemplate("Transparent")
|
|
StackSplitFrame:GetRegions():Hide()
|
|
StackSplitFrame:SetFrameStrata("DIALOG")
|
|
|
|
StackSplitFrame.bg1 = CreateFrame("Frame", nil, StackSplitFrame)
|
|
StackSplitFrame.bg1:SetFrameLevel(StackSplitFrame.bg1:GetFrameLevel() - 1)
|
|
StackSplitFrame.bg1:SetTemplate("Transparent")
|
|
StackSplitFrame.bg1:Point("TOPLEFT", 10, -15)
|
|
StackSplitFrame.bg1:Point("BOTTOMRIGHT", -10, 55)
|
|
|
|
S:HandleButton(StackSplitOkayButton)
|
|
S:HandleButton(StackSplitCancelButton)
|
|
|
|
-- Opacity Frame
|
|
OpacityFrame:StripTextures()
|
|
OpacityFrame:SetTemplate("Transparent")
|
|
|
|
S:HandleSliderFrame(OpacityFrameSlider)
|
|
|
|
-- Channel Pullout Frame
|
|
ChannelPullout:SetTemplate("Transparent")
|
|
|
|
ChannelPulloutBackground:Kill()
|
|
|
|
S:HandleTab(ChannelPulloutTab)
|
|
ChannelPulloutTab:Size(107, 26)
|
|
ChannelPulloutTabText:Point("LEFT", ChannelPulloutTabLeft, "RIGHT", 0, 4)
|
|
|
|
S:HandleCloseButton(ChannelPulloutCloseButton, ChannelPullout)
|
|
ChannelPulloutCloseButton:Size(32)
|
|
|
|
-- Dropdown Menu
|
|
local checkBoxSkin = E.private.skins.dropdownCheckBoxSkin
|
|
local menuLevel = 0
|
|
local maxButtons = 0
|
|
|
|
local function dropDownButtonShow(self)
|
|
if self.notCheckable then
|
|
self.check.backdrop:Hide()
|
|
else
|
|
self.check.backdrop:Show()
|
|
end
|
|
end
|
|
|
|
local function skinDropdownMenu()
|
|
local updateButtons = maxButtons < UIDROPDOWNMENU_MAXBUTTONS
|
|
|
|
if updateButtons or menuLevel < UIDROPDOWNMENU_MAXLEVELS then
|
|
for i = 1, UIDROPDOWNMENU_MAXLEVELS do
|
|
local frame = _G["DropDownList"..i]
|
|
|
|
if not frame.isSkinned then
|
|
_G["DropDownList"..i.."Backdrop"]:SetTemplate("Transparent")
|
|
_G["DropDownList"..i.."MenuBackdrop"]:SetTemplate("Transparent")
|
|
|
|
frame.isSkinned = true
|
|
end
|
|
|
|
if updateButtons then
|
|
for j = 1, UIDROPDOWNMENU_MAXBUTTONS do
|
|
local button = _G["DropDownList"..i.."Button"..j]
|
|
|
|
if not button.isSkinned then
|
|
S:HandleButtonHighlight(_G["DropDownList"..i.."Button"..j.."Highlight"])
|
|
|
|
if checkBoxSkin then
|
|
local check = _G["DropDownList"..i.."Button"..j.."Check"]
|
|
check:Size(12)
|
|
check:Point("LEFT", 1, 0)
|
|
check:CreateBackdrop()
|
|
check:SetTexture(E.media.normTex)
|
|
check:SetVertexColor(1, 0.82, 0, 0.8)
|
|
|
|
button.check = check
|
|
hooksecurefunc(button, "Show", dropDownButtonShow)
|
|
end
|
|
|
|
S:HandleColorSwatch(_G["DropDownList"..i.."Button"..j.."ColorSwatch"], 14)
|
|
|
|
button.isSkinned = true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
menuLevel = UIDROPDOWNMENU_MAXLEVELS
|
|
maxButtons = UIDROPDOWNMENU_MAXBUTTONS
|
|
end
|
|
end
|
|
|
|
skinDropdownMenu()
|
|
hooksecurefunc("UIDropDownMenu_InitializeHelper", skinDropdownMenu)
|
|
|
|
-- Chat Menu
|
|
local chatMenus = {
|
|
"ChatMenu",
|
|
"EmoteMenu",
|
|
"LanguageMenu",
|
|
"VoiceMacroMenu",
|
|
}
|
|
|
|
for i = 1, #chatMenus do
|
|
if chatMenus[i] == "ChatMenu" then
|
|
_G[chatMenus[i]]:HookScript("OnShow", function(self)
|
|
self:SetTemplate("Transparent")
|
|
self:SetBackdropColor(unpack(E.media.backdropfadecolor))
|
|
self:ClearAllPoints()
|
|
self:Point("BOTTOMLEFT", ChatFrame1, "TOPLEFT", 0, 30)
|
|
end)
|
|
else
|
|
_G[chatMenus[i]]:HookScript("OnShow", function(self)
|
|
self:SetTemplate("Transparent")
|
|
self:SetBackdropColor(unpack(E.media.backdropfadecolor))
|
|
end)
|
|
end
|
|
end
|
|
|
|
for i = 1, 32 do
|
|
_G["ChatMenuButton"..i]:StyleButton()
|
|
_G["EmoteMenuButton"..i]:StyleButton()
|
|
_G["LanguageMenuButton"..i]:StyleButton()
|
|
_G["VoiceMacroMenuButton"..i]:StyleButton()
|
|
end
|
|
end) |