mirror of
https://github.com/Bluewhale1337/ElvUIModernized.git
synced 2026-07-27 08:24:44 +00:00
229 lines
7.0 KiB
Lua
229 lines
7.0 KiB
Lua
local E, L, V, P, G = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
|
local S = E:GetModule("Skins");
|
|
|
|
--Cache global variables
|
|
--Lua functions
|
|
local _G = _G
|
|
local unpack = unpack
|
|
--WoW API / Variables
|
|
local GetInboxItem = GetInboxItem
|
|
local GetItemInfo = GetItemInfo
|
|
local GetItemQualityColor = GetItemQualityColor
|
|
local GetSendMailItem = GetSendMailItem
|
|
local hooksecurefunc = hooksecurefunc
|
|
local INBOXITEMS_TO_DISPLAY = INBOXITEMS_TO_DISPLAY
|
|
|
|
local function LoadSkin()
|
|
if E.private.skins.blizzard.enable ~= true or E.private.skins.blizzard.mail ~= true then return end
|
|
|
|
-- Inbox Frame
|
|
E:StripTextures(MailFrame, true)
|
|
E:CreateBackdrop(MailFrame, "Transparent")
|
|
MailFrame.backdrop:SetPoint("TOPLEFT", 10, -12)
|
|
MailFrame.backdrop:SetPoint("BOTTOMRIGHT", -30, 74)
|
|
|
|
for i = 1, INBOXITEMS_TO_DISPLAY do
|
|
local mail = _G["MailItem"..i]
|
|
local button = _G["MailItem"..i.."Button"]
|
|
local icon = _G["MailItem"..i.."ButtonIcon"]
|
|
|
|
E:StripTextures(mail)
|
|
E:CreateBackdrop(mail, "Default")
|
|
mail.backdrop:SetPoint("TOPLEFT", 2, 1)
|
|
mail.backdrop:SetPoint("BOTTOMRIGHT", -2, 2)
|
|
|
|
E:StripTextures(button)
|
|
E:SetTemplate(button, "Default", true)
|
|
E:StyleButton(button)
|
|
|
|
icon:SetTexCoord(unpack(E.TexCoords))
|
|
E:SetInside(icon)
|
|
end
|
|
|
|
hooksecurefunc("InboxFrame_Update", function()
|
|
local numItems = GetInboxNumItems()
|
|
local index = ((InboxFrame.pageNum - 1) * INBOXITEMS_TO_DISPLAY) + 1
|
|
|
|
for i = 1, INBOXITEMS_TO_DISPLAY do
|
|
if index <= numItems then
|
|
local packageIcon, _, _, _, _, _, _, _, _, _, _, _, isGM = GetInboxHeaderInfo(index)
|
|
local button = _G["MailItem"..i.."Button"]
|
|
|
|
button:SetBackdropBorderColor(unpack(E["media"].bordercolor))
|
|
if packageIcon and not isGM then
|
|
local itemName = GetInboxItem(index)
|
|
if itemName then
|
|
local _, itemString = GetItemInfoByName(itemName)
|
|
local _, _, quality = GetItemInfo(itemString, "item:(%d+)")
|
|
if quality then
|
|
button:SetBackdropBorderColor(GetItemQualityColor(quality))
|
|
else
|
|
button:SetBackdropBorderColor(unpack(E["media"].bordercolor))
|
|
end
|
|
end
|
|
elseif isGM then
|
|
button:SetBackdropBorderColor(0, 0.56, 0.94)
|
|
end
|
|
end
|
|
|
|
index = index + 1
|
|
end
|
|
end)
|
|
|
|
S:HandleNextPrevButton(InboxPrevPageButton)
|
|
S:HandleNextPrevButton(InboxNextPageButton)
|
|
|
|
S:HandleCloseButton(InboxCloseButton)
|
|
|
|
for i = 1, 2 do
|
|
local tab = _G["MailFrameTab"..i]
|
|
|
|
E:StripTextures(tab)
|
|
S:HandleTab(tab)
|
|
end
|
|
|
|
-- Send Mail Frame
|
|
E:StripTextures(SendMailFrame)
|
|
|
|
E:StripTextures(SendMailScrollFrame, true)
|
|
E:SetTemplate(SendMailScrollFrame, "Default")
|
|
|
|
hooksecurefunc("SendMailFrame_Update", function()
|
|
if not SendMailPackageButton.skinned then
|
|
E:StripTextures(SendMailPackageButton)
|
|
E:SetTemplate(SendMailPackageButton, "Default", true)
|
|
E:StyleButton(SendMailPackageButton, nil, true)
|
|
|
|
SendMailPackageButton.skinned = true
|
|
end
|
|
|
|
local itemName = GetSendMailItem()
|
|
if itemName then
|
|
local _, _, _, quality = GetSendMailItem()
|
|
if quality then
|
|
SendMailPackageButton:SetBackdropBorderColor(GetItemQualityColor(quality))
|
|
else
|
|
SendMailPackageButton:SetBackdropBorderColor(unpack(E["media"].bordercolor))
|
|
end
|
|
SendMailPackageButton:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
|
|
E:SetInside(SendMailPackageButton:GetNormalTexture())
|
|
else
|
|
SendMailPackageButton:SetBackdropBorderColor(unpack(E["media"].bordercolor))
|
|
end
|
|
end)
|
|
|
|
SendMailBodyEditBox:SetTextColor(1, 1, 1)
|
|
|
|
S:HandleScrollBar(SendMailScrollFrameScrollBar)
|
|
|
|
S:HandleEditBox(SendMailNameEditBox)
|
|
SendMailNameEditBox.backdrop:SetPoint("BOTTOMRIGHT", 2, 0)
|
|
SendMailNameEditBox:SetPoint("TOPLEFT", 79, -46)
|
|
|
|
S:HandleEditBox(SendMailSubjectEditBox)
|
|
SendMailSubjectEditBox.backdrop:SetPoint("BOTTOMRIGHT", 2, 0)
|
|
|
|
S:HandleEditBox(SendMailMoneyGold)
|
|
S:HandleEditBox(SendMailMoneySilver)
|
|
S:HandleEditBox(SendMailMoneyCopper)
|
|
|
|
S:HandleButton(SendMailMailButton)
|
|
SendMailMailButton:SetPoint("RIGHT", SendMailCancelButton, "LEFT", -2, 0)
|
|
|
|
S:HandleButton(SendMailCancelButton)
|
|
SendMailCancelButton:SetPoint("BOTTOMRIGHT", -45, 80)
|
|
|
|
SendMailMoneyFrame:SetPoint("BOTTOMLEFT", 170, 84)
|
|
|
|
-- Open Mail Frame
|
|
E:StripTextures(OpenMailFrame, true)
|
|
E:CreateBackdrop(OpenMailFrame, "Transparent")
|
|
OpenMailFrame.backdrop:SetPoint("TOPLEFT", 12, -12)
|
|
OpenMailFrame.backdrop:SetPoint("BOTTOMRIGHT", -34, 74)
|
|
|
|
E:StripTextures(OpenMailPackageButton)
|
|
E:StyleButton(OpenMailPackageButton)
|
|
E:SetTemplate(OpenMailPackageButton, "Default", true)
|
|
|
|
for _, region in ipairs({OpenMailPackageButton:GetRegions()}) do
|
|
if region:GetObjectType() == "Texture" then
|
|
region:SetTexCoord(unpack(E.TexCoords))
|
|
E:SetInside(region)
|
|
end
|
|
end
|
|
|
|
--[[for i = 1, OpenMailPackageButton:GetNumRegions() do
|
|
local region = select(i, OpenMailPackageButton:GetRegions())
|
|
if region:GetObjectType() == "Texture" then
|
|
region:SetTexCoord(unpack(E.TexCoords))
|
|
E:SetInside(region)
|
|
end
|
|
end]]
|
|
|
|
hooksecurefunc("OpenMail_Update", function()
|
|
local index = InboxFrame.openMailID
|
|
if not index then return end
|
|
|
|
local _, stationeryIcon, _, _, _, _, _, hasItem = GetInboxHeaderInfo(index)
|
|
|
|
if hasItem then
|
|
local itemName = GetInboxItem(index)
|
|
if itemName then
|
|
local _, itemString = GetItemInfoByName(itemName)
|
|
local _, _, quality = GetItemInfo(itemString, "item:(%d+)")
|
|
if quality then
|
|
OpenMailPackageButton:SetBackdropBorderColor(GetItemQualityColor(quality))
|
|
else
|
|
OpenMailPackageButton:SetBackdropBorderColor(unpack(E["media"].bordercolor))
|
|
end
|
|
OpenMailPackageButton:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
|
|
E:SetInside(OpenMailPackageButton:GetNormalTexture())
|
|
else
|
|
OpenMailPackageButton:SetBackdropBorderColor(unpack(E["media"].bordercolor))
|
|
end
|
|
end
|
|
end)
|
|
|
|
S:HandleCloseButton(OpenMailCloseButton)
|
|
|
|
S:HandleButton(OpenMailReplyButton)
|
|
OpenMailReplyButton:SetPoint("RIGHT", OpenMailDeleteButton, "LEFT", -2, 0)
|
|
|
|
S:HandleButton(OpenMailDeleteButton)
|
|
OpenMailDeleteButton:SetPoint("RIGHT", OpenMailCancelButton, "LEFT", -2, 0)
|
|
|
|
S:HandleButton(OpenMailCancelButton)
|
|
|
|
E:StripTextures(OpenMailScrollFrame, true)
|
|
E:SetTemplate(OpenMailScrollFrame, "Default")
|
|
|
|
S:HandleScrollBar(OpenMailScrollFrameScrollBar)
|
|
|
|
OpenMailBodyText:SetTextColor(1, 1, 1)
|
|
InvoiceTextFontNormal:SetTextColor(1, 1, 1)
|
|
OpenMailInvoiceBuyMode:SetTextColor(1, 0.80, 0.10)
|
|
|
|
E:Kill(OpenMailArithmeticLine)
|
|
|
|
E:StripTextures(OpenMailLetterButton)
|
|
E:SetTemplate(OpenMailLetterButton, "Default", true)
|
|
E:StyleButton(OpenMailLetterButton)
|
|
|
|
OpenMailLetterButtonIconTexture:SetTexCoord(unpack(E.TexCoords))
|
|
OpenMailLetterButtonIconTexture:SetDrawLayer("ARTWORK")
|
|
E:SetInside(OpenMailLetterButtonIconTexture)
|
|
|
|
OpenMailLetterButtonCount:SetDrawLayer("OVERLAY")
|
|
|
|
E:StripTextures(OpenMailMoneyButton)
|
|
E:SetTemplate(OpenMailMoneyButton, "Default", true)
|
|
E:StyleButton(OpenMailMoneyButton)
|
|
|
|
OpenMailMoneyButtonIconTexture:SetTexCoord(unpack(E.TexCoords))
|
|
OpenMailMoneyButtonIconTexture:SetDrawLayer("ARTWORK")
|
|
E:SetInside(OpenMailMoneyButtonIconTexture)
|
|
|
|
OpenMailMoneyButtonCount:SetDrawLayer("OVERLAY")
|
|
end
|
|
|
|
S:AddCallback("Mail", LoadSkin) |