119 lignes
3.3 KiB
Lua
119 lignes
3.3 KiB
Lua
local Postal = LibStub("AceAddon-3.0"):GetAddon("Postal")
|
|
local Postal_DoNotWant = Postal:NewModule("DoNotWant", "AceHook-3.0")
|
|
local L = LibStub("AceLocale-3.0"):GetLocale("Postal")
|
|
Postal_DoNotWant.description = L["Shows a clickable visual icon as to whether a mail will be returned or deleted on expiry."]
|
|
|
|
-- luacheck: globals InboxFrame
|
|
|
|
local _G = getfenv(0)
|
|
local selectedID
|
|
local selectedIDmoney
|
|
|
|
StaticPopupDialogs["POSTAL_DELETE_MAIL"] = {
|
|
text = DELETE_MAIL_CONFIRMATION,
|
|
button1 = ACCEPT,
|
|
button2 = CANCEL,
|
|
OnAccept = function(self)
|
|
DeleteInboxItem(selectedID)
|
|
selectedID = nil
|
|
--HideUIPanel(OpenMailFrame)
|
|
end,
|
|
showAlert = 1,
|
|
timeout = 0,
|
|
hideOnEscape = 1
|
|
}
|
|
|
|
StaticPopupDialogs["POSTAL_DELETE_MONEY"] = {
|
|
text = DELETE_MONEY_CONFIRMATION,
|
|
button1 = ACCEPT,
|
|
button2 = CANCEL,
|
|
OnAccept = function(self)
|
|
DeleteInboxItem(selectedID)
|
|
selectedID = nil
|
|
--HideUIPanel(OpenMailFrame)
|
|
end,
|
|
OnShow = function(self)
|
|
MoneyFrame_Update(self.moneyFrame, selectedIDmoney)
|
|
end,
|
|
hasMoneyFrame = 1,
|
|
showAlert = 1,
|
|
timeout = 0,
|
|
hideOnEscape = 1
|
|
}
|
|
|
|
function Postal_DoNotWant.Click(self, button, down)
|
|
selectedID = self.id + (InboxFrame.pageNum-1)*7
|
|
local packageIcon, stationeryIcon, sender, subject, money, CODAmount, daysLeft, itemCount, wasRead, wasReturned, textCreated, canReply = GetInboxHeaderInfo(selectedID)
|
|
selectedIDmoney = money
|
|
local firstAttachName
|
|
for i = 1, ATTACHMENTS_MAX_RECEIVE do
|
|
firstAttachName = GetInboxItem(selectedID, i)
|
|
if firstAttachName then break end
|
|
end
|
|
if InboxItemCanDelete(selectedID) then
|
|
if firstAttachName then
|
|
StaticPopup_Show("POSTAL_DELETE_MAIL", firstAttachName)
|
|
return
|
|
elseif money and money > 0 then
|
|
StaticPopup_Show("POSTAL_DELETE_MONEY")
|
|
return
|
|
else
|
|
DeleteInboxItem(selectedID)
|
|
end
|
|
else
|
|
ReturnInboxItem(selectedID)
|
|
StaticPopup_Hide("COD_CONFIRMATION")
|
|
end
|
|
selectedID = nil
|
|
--HideUIPanel(OpenMailFrame)
|
|
end
|
|
|
|
function Postal_DoNotWant:OnEnable()
|
|
-- Create the icons
|
|
for i = 1, 7 do
|
|
local b = _G["MailItem"..i.."ExpireTime"]
|
|
if not b.returnicon then
|
|
b.returnicon = CreateFrame("BUTTON", nil, b)
|
|
b.returnicon:SetPoint("TOPRIGHT", b, "BOTTOMRIGHT", -5, -1)
|
|
b.returnicon:SetWidth(16)
|
|
b.returnicon:SetHeight(16)
|
|
b.returnicon.texture = b.returnicon:CreateTexture(nil, "BACKGROUND")
|
|
b.returnicon.texture:SetAllPoints()
|
|
b.returnicon.texture:SetTexCoord(1, 0, 0, 1) -- flips image left/right
|
|
b.returnicon.id = i
|
|
b.returnicon:SetScript("OnClick", Postal_DoNotWant.Click)
|
|
b.returnicon:SetScript("OnEnter", b:GetScript("OnEnter"))
|
|
b.returnicon:SetScript("OnLeave", b:GetScript("OnLeave"))
|
|
end
|
|
-- For enabling after a disable
|
|
b.returnicon:Show()
|
|
end
|
|
|
|
self:RawHook("InboxFrame_Update", true)
|
|
end
|
|
|
|
function Postal_DoNotWant:OnDisable()
|
|
if self:IsHooked("InboxFrame_Update") then
|
|
self:Unhook("InboxFrame_Update")
|
|
end
|
|
for i = 1, 7 do
|
|
_G["MailItem"..i.."ExpireTime"].returnicon:Hide()
|
|
end
|
|
end
|
|
|
|
function Postal_DoNotWant:InboxFrame_Update()
|
|
self.hooks["InboxFrame_Update"]()
|
|
for i = 1, 7 do
|
|
local index = i + (InboxFrame.pageNum-1)*7
|
|
local b = _G["MailItem"..i.."ExpireTime"].returnicon
|
|
if index > GetInboxNumItems() then
|
|
b:Hide()
|
|
else
|
|
local f = InboxItemCanDelete(index)
|
|
b.texture:SetTexture(f and "Interface\\RaidFrame\\ReadyCheck-NotReady" or "Interface\\ChatFrame\\ChatFrameExpandArrow")
|
|
b.tooltip = f and DELETE or MAIL_RETURN
|
|
b:Show()
|
|
end
|
|
end
|
|
end
|