vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--<< ====================================================================== >>--
-- Module Setup                                                               --
--<< ====================================================================== >>--
AceTimerFade = AceTimer:AddModule({ 
        option = ACETIMER.OPT_FADE, 
        method = "CareOptFade", 
        desc = ACETIMER.OPT_FADE_DESC, 
})

function AceTimerFade:Enable()
        if self.GetOpt("NoFade") then return self:Disable() end
        self:RegisterEvent("CHAT_MSG_SPELL_AURA_GONE_SELF",  "SPELL_AURA_GONE_SELF")
        self:RegisterEvent("CHAT_MSG_SPELL_AURA_GONE_OTHER", "SPELL_AURA_GONE_OTHER")
end

function AceTimerFade:Disable()
        self:UnregisterAllEvents(self)
end

--<< ====================================================================== >>--
-- Fade processing                                                            --
--<< ====================================================================== >>--
function AceTimerFade:SPELL_AURA_GONE_SELF()
        if  self:FindGlobal(arg1, AURAREMOVEDSELF) then -- "%s fades from you."
                return self:KillBar(self.gs_captured[1])
        end
end

function AceTimerFade:SPELL_AURA_GONE_OTHER()
        if self:FindGlobal(arg1, AURAREMOVEDOTHER) then -- "%s fades from %s."
                return self:KillBar(self.gs_captured[1], self.gs_captured[2])
        end
end

--<< ====================================================================== >>--
-- Command Handlers                                                           --
--<< ====================================================================== >>--
function AceTimerFade:CareOptFade()
        if self.TogOpt("NoFade") then self:Disable() else self:Enable() end
        return self:Report()
end

function AceTimerFade:Report()
        return self.cmd:result(
                ACETIMER.OPT_FADE_TEXT, 
                ACETIMER.MAP_ONOFF[self.GetOpt("NoFade") or 0]
        )
end