WoWInterface SVN RaidWatch2

[/] [trunk/] [RaidWatch_Core/] [Prototypes/] [Plugin.lua] - Rev 22

Compare with Previous | Blame | View Log

local RW = LibStub("AceAddon-3.0"):GetAddon("Raid Watch")

local Plugin = {}

RW.Plugins:SetDefaultModulePrototype(Plugin)

function Plugin:OnInitialize()
        RW:RegisterPlugin(self)
end

function Plugin:OnEnable()
        if self.PluginEnable then self:PluginEnable() end
        RW.Callbacks:Fire("PluginEnabled", self)
end

function Plugin:OnDisable()
        if self.PluginDisable then self:PluginDisable() end
        RW.Callbacks:Fire("PluginDisabled", self)
end

function Plugin:RegisterCallback(event, func)
        assert(type(event) == "string", self:GetName()..": Usage self:RegisterCallbac(event[, func])")
        if func then assert(func and (type(func) == "string" or type(func) == "function"), self:GetName()..": Usage self:RegisterCallbac(event[, func])") end
        RW.RegisterCallback(self, event, func)
end

function Plugin:UnregisterCallback(event)
        assert(type(event) ~= "string", self:GetName()..": Usage self:UnregisterCallback(event)")
        RW.UnregisterCallback(self, event)
end

function Plugin:UnregisterAllCallbacks()
        RW.UnregisterAllCallbacks(self)
end

function Plugin:FireEvent(event, ...)
        assert(type(event) == "string", self:GetName()..": Usage self:FireEvent(event[, ...])")
        RW.Callbacks:Fire(event, ...)
end

Compare with Previous | Blame