Files
Andrew6810 4e3aff9d89 init
2022-10-21 06:37:39 -07:00

41 lines
878 B
Lua

--[[
Classy.lua
Utility methods for constructing a Bagnon object class
--]]
local Bagnon = LibStub('AceAddon-3.0'):GetAddon('Bagnon')
local Classy = {}
Bagnon.Classy = Classy
function Classy:New(frameType, parentClass)
local class = CreateFrame(frameType)
class.mt = {__index = class}
if parentClass then
class = setmetatable(class, {__index = parentClass})
class.super = parentClass
end
class.Bind = function(self, obj)
return setmetatable(obj, self.mt)
end
--callback support
class.RegisterMessage = function(self, ...)
Bagnon.Callbacks:Listen(self, ...)
end
class.SendMessage = function(self, ...)
Bagnon.Callbacks:SendMessage(...)
end
class.UnregisterMessage = function(self, ...)
Bagnon.Callbacks:Ignore(self, ...)
end
class.UnregisterAllMessages = function(self, ...)
Bagnon.Callbacks:IgnoreAll(self, ...)
end
return class
end