TradeSkillMaster/Core/Service/Mailing/Core.lua

56 lines
1.5 KiB
Lua
Raw Normal View History

2020-11-13 14:13:12 -05:00
-- ------------------------------------------------------------------------------ --
-- TradeSkillMaster --
-- https://tradeskillmaster.com --
-- All Rights Reserved - Detailed license information included with addon. --
-- ------------------------------------------------------------------------------ --
local _, TSM = ...
local Mailing = TSM:NewPackage("Mailing")
local Event = TSM.Include("Util.Event")
local private = {
mailOpen = false,
frameCallbacks = {},
}
-- ============================================================================
-- Module Functions
-- ============================================================================
function Mailing.OnInitialize()
Event.Register("MAIL_SHOW", private.MailShow)
Event.Register("MAIL_CLOSED", private.MailClosed)
end
function Mailing.RegisterFrameCallback(callback)
tinsert(private.frameCallbacks, callback)
end
function Mailing.IsOpen()
return private.mailOpen
end
-- ============================================================================
-- Private Helper Functions
-- ============================================================================
function private.MailShow()
private.mailOpen = true
for _, callback in ipairs(private.frameCallbacks) do
callback(true)
end
end
function private.MailClosed()
if not private.mailOpen then
return
end
private.mailOpen = false
for _, callback in ipairs(private.frameCallbacks) do
callback(false)
end
end