mirror of
https://github.com/brues-code/pfUI.git
synced 2026-09-22 07:36:56 +00:00
184 lines
7.1 KiB
Lua
184 lines
7.1 KiB
Lua
pfUI:RegisterSkin("Mailbox", function ()
|
|
local rawborder, border = GetBorderSize()
|
|
local bpad = rawborder > 1 and border - GetPerfectPixel() or GetPerfectPixel()
|
|
|
|
-- Compatibility
|
|
local StationeryBackgroundLeft, StationeryBackgroundRight
|
|
do -- SendMailFrame
|
|
local skin = CreateFrame("Frame")
|
|
skin:SetScript("OnEvent", function()
|
|
this:UnregisterEvent("MAIL_SHOW")
|
|
if not this._Mail then
|
|
StripTextures(SendMailPackageButton)
|
|
SkinButton(SendMailPackageButton, nil, nil, nil, nil, true)
|
|
|
|
hooksecurefunc("SendMailFrame_Update", function()
|
|
HandleIcon(SendMailPackageButton, SendMailPackageButton:GetNormalTexture())
|
|
|
|
local _, itemID = GetSendMailItemLink()
|
|
if itemID then
|
|
local quality = C_Item.GetItemQualityByID(itemID)
|
|
local r,g,b = GetItemQualityColor(quality)
|
|
SendMailPackageButton:SetBackdropBorderColor(r,g,b,1)
|
|
else
|
|
SendMailPackageButton:SetBackdropBorderColor(GetStringColor(pfUI_config.appearance.border.color))
|
|
end
|
|
end)
|
|
end
|
|
end)
|
|
skin:RegisterEvent("MAIL_SHOW")
|
|
|
|
HookAddonOrVariable("Mail", function()
|
|
skin._Mail = true
|
|
for i = 1, 21 do
|
|
local button = _G["MailAttachment"..i]
|
|
StripTextures(button)
|
|
|
|
SkinButton(button, nil, nil, nil, nil, true)
|
|
local orig = button.SetNormalTexture
|
|
button.SetNormalTexture = function(self, tex)
|
|
orig(self, tex)
|
|
|
|
if button.item then
|
|
HandleIcon(self, self:GetNormalTexture())
|
|
local quality = C_Item.GetItemQuality(ItemLocation:CreateFromBagAndSlot(button.item[1], button.item[2]))
|
|
local r,g,b = GetItemQualityColor(quality)
|
|
self:SetBackdropBorderColor(r,g,b,1)
|
|
else
|
|
self:SetBackdropBorderColor(GetStringColor(pfUI_config.appearance.border.color))
|
|
end
|
|
end
|
|
end
|
|
SkinButton(GetNoNameObject(InboxFrame, "Button", nil, "UI-Panel-Button-Up", OPENMAIL))
|
|
local button = GetNoNameObject(SendMailFrame, "Button", nil, "UI-Panel-Button-Up", SEND_LABEL) -- this is SendMailMailButton
|
|
SkinButton(button) -- hack! only it happened to do it
|
|
button:ClearAllPoints()
|
|
button:SetPoint("RIGHT", SendMailCancelButton, "LEFT", -2*bpad, 0)
|
|
end)
|
|
|
|
StationeryBackgroundLeft, StationeryBackgroundRight = _G.StationeryBackgroundLeft, _G.StationeryBackgroundRight
|
|
end
|
|
|
|
do -- OpenMailFrame
|
|
SkinButton(OpenMailPackageButton, nil, nil, nil, OpenMailPackageButtonIconTexture)
|
|
|
|
hooksecurefunc("InboxFrame_OnClick", function(index)
|
|
local _, itemID = GetInboxItemLink(index)
|
|
if itemID then
|
|
local quality = C_Item.GetItemQualityByID(itemID)
|
|
local r,g,b = GetItemQualityColor(quality)
|
|
OpenMailPackageButton:SetBackdropBorderColor(r,g,b,1)
|
|
else
|
|
OpenMailPackageButton:SetBackdropBorderColor(GetStringColor(pfUI_config.appearance.border.color))
|
|
end
|
|
end)
|
|
end
|
|
|
|
StripTextures(MailFrame, true)
|
|
CreateBackdrop(MailFrame, nil, nil, .75)
|
|
CreateBackdropShadow(MailFrame)
|
|
|
|
MailFrame.backdrop:SetPoint("TOPLEFT", 12, -12)
|
|
MailFrame.backdrop:SetPoint("BOTTOMRIGHT", -30, 72)
|
|
MailFrame:SetHitRectInsets(12,30,12,72)
|
|
EnableMovable(MailFrame)
|
|
|
|
SkinCloseButton(InboxCloseButton, MailFrame.backdrop, -6, -6)
|
|
|
|
SkinTab(MailFrameTab1)
|
|
MailFrameTab1:ClearAllPoints()
|
|
MailFrameTab1:SetPoint("TOPLEFT", MailFrame.backdrop, "BOTTOMLEFT", bpad, -(border + (border == 1 and 1 or 2)))
|
|
SkinTab(MailFrameTab2)
|
|
MailFrameTab2:ClearAllPoints()
|
|
MailFrameTab2:SetPoint("LEFT", MailFrameTab1, "RIGHT", border*2 + 1, 0)
|
|
|
|
do -- InboxFrame
|
|
InboxTitleText:ClearAllPoints()
|
|
InboxTitleText:SetPoint("TOP", MailFrame.backdrop, "TOP", 0, -10)
|
|
|
|
CreateBackdrop(InboxFrame, nil, nil, .75)
|
|
InboxFrame.backdrop:SetPoint("TOPLEFT", _G["MailItem"..1], "TOPLEFT", 0, 1)
|
|
InboxFrame.backdrop:SetPoint("BOTTOMRIGHT", _G["MailItem"..INBOXITEMS_TO_DISPLAY], "BOTTOMRIGHT", 0, 0)
|
|
_G["MailItem"..1]:SetPoint("TOPLEFT", 28, -70)
|
|
|
|
for i = 1, INBOXITEMS_TO_DISPLAY do
|
|
StripTextures(_G["MailItem"..i])
|
|
StripTextures(_G["MailItem"..i.."Button"])
|
|
SkinButton(_G["MailItem"..i.."Button"], nil, nil, nil, _G["MailItem"..i.."ButtonIcon"])
|
|
end
|
|
|
|
InboxPrevPageButton:ClearAllPoints()
|
|
InboxPrevPageButton:SetPoint("TOPLEFT", InboxFrame.backdrop, "BOTTOMLEFT", 0, -10)
|
|
|
|
InboxNextPageButton:ClearAllPoints()
|
|
InboxNextPageButton:SetPoint("TOPRIGHT", InboxFrame.backdrop, "BOTTOMRIGHT", 0, -10)
|
|
|
|
SkinArrowButton(InboxPrevPageButton, "left", 16)
|
|
SkinArrowButton(InboxNextPageButton, "right", 16)
|
|
|
|
InboxPrevPageButton:GetRegions():SetPoint("LEFT", InboxPrevPageButton, "RIGHT", 5, 0)
|
|
InboxNextPageButton:GetRegions():SetPoint("RIGHT", InboxNextPageButton, "LEFT", -5, 0)
|
|
end
|
|
|
|
do -- SendMailFrame
|
|
SendMailTitleText:ClearAllPoints()
|
|
SendMailTitleText:SetPoint("TOP", MailFrame.backdrop, "TOP", 0, -10)
|
|
|
|
StripTextures(SendMailNameEditBox, nil, "BACKGROUND")
|
|
CreateBackdrop(SendMailNameEditBox, nil, true)
|
|
StripTextures(SendMailSubjectEditBox, nil, "BACKGROUND")
|
|
CreateBackdrop(SendMailSubjectEditBox, nil, true)
|
|
|
|
SkinButton(SendMailCancelButton)
|
|
SkinButton(SendMailMailButton)
|
|
SendMailMailButton:ClearAllPoints()
|
|
SendMailMailButton:SetPoint("RIGHT", SendMailCancelButton, "LEFT", -2*bpad, 0)
|
|
|
|
StripTextures(SendMailFrame)
|
|
StripTextures(SendMailScrollFrame)
|
|
CreateBackdrop(SendMailScrollFrame, nil, true)
|
|
SkinScrollbar(SendMailScrollFrameScrollBar)
|
|
|
|
SkinMoneyInputFrame(SendMailMoney)
|
|
|
|
StationeryBackgroundLeft:SetDrawLayer("BORDER")
|
|
StationeryBackgroundLeft:SetAllPoints()
|
|
StationeryBackgroundRight:Hide()
|
|
end
|
|
|
|
do -- OpenMailFrame
|
|
StripTextures(OpenMailFrame)
|
|
CreateBackdrop(OpenMailFrame, nil, nil, .75)
|
|
OpenMailFrame.backdrop:SetPoint("TOPLEFT", 10, -10)
|
|
OpenMailFrame.backdrop:SetPoint("BOTTOMRIGHT", -32, 72)
|
|
OpenMailFrame:SetHitRectInsets(10,32,10,72)
|
|
|
|
SkinCloseButton(OpenMailCloseButton, OpenMailFrame.backdrop, -6, -6)
|
|
|
|
OpenMailFrame:DisableDrawLayer("BACKGROUND")
|
|
|
|
OpenMailTitleText:ClearAllPoints()
|
|
OpenMailTitleText:SetPoint("TOP", OpenMailFrame.backdrop, "TOP", 0, -10)
|
|
|
|
SkinButton(OpenMailCancelButton)
|
|
SkinButton(OpenMailDeleteButton)
|
|
OpenMailDeleteButton:ClearAllPoints()
|
|
OpenMailDeleteButton:SetPoint("RIGHT", OpenMailCancelButton, "LEFT", -2*bpad, 0)
|
|
SkinButton(OpenMailReplyButton)
|
|
OpenMailReplyButton:ClearAllPoints()
|
|
OpenMailReplyButton:SetPoint("RIGHT", OpenMailDeleteButton, "LEFT", -2*bpad, 0)
|
|
|
|
SkinButton(OpenMailMoneyButton, nil, nil, nil, OpenMailMoneyButtonIconTexture)
|
|
SkinButton(OpenMailLetterButton, nil, nil, nil, OpenMailLetterButtonIconTexture)
|
|
|
|
StripTextures(OpenMailScrollFrame)
|
|
CreateBackdrop(OpenMailScrollFrame, nil, true)
|
|
SkinScrollbar(OpenMailScrollFrameScrollBar)
|
|
|
|
OpenStationeryBackgroundLeft:SetDrawLayer("BORDER")
|
|
OpenStationeryBackgroundLeft:SetTexCoord(.1,1,.1,.9)
|
|
OpenStationeryBackgroundLeft:SetAllPoints()
|
|
OpenStationeryBackgroundRight:Hide()
|
|
end
|
|
end)
|