initial commit
This commit is contained in:
55
Core/Service/Mailing/Core.lua
Normal file
55
Core/Service/Mailing/Core.lua
Normal file
@@ -0,0 +1,55 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- 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
|
||||
Reference in New Issue
Block a user