Mercurial > wow > itemauditor
diff Core.lua @ 38:e27d13095b49
Added the ability to suspend and resume ItemAuditor (Ticket #8). To access this feature use "/ia suspend".
author | Asa Ayers <Asa.Ayers@Gmail.com> |
---|---|
date | Sun, 18 Jul 2010 22:46:35 -0700 |
parents | 9bd18fce8498 |
children | 003de902ae64 |
line wrap: on
line diff
--- a/Core.lua Sun Jul 18 21:32:15 2010 -0700 +++ b/Core.lua Sun Jul 18 22:46:35 2010 -0700 @@ -27,6 +27,7 @@ cost_updates = true, queue_skip = false, }, + addon_enabled = true, -- This is for development, so I have no plans to turn it into an option. show_debug_frame_on_startup = false, }, @@ -40,8 +41,7 @@ self.items = self.db.factionrealm.items self:RegisterOptions() - - self:RegisterEvent("PLAYER_ENTERING_WORLD") + ItemAuditor:RegisterFrame(ItemAuditor_DebugFrame) -- /run ItemAuditor.db.profile.show_debug_frame_on_startup = true if self.db.profile.show_debug_frame_on_startup then @@ -50,6 +50,44 @@ end end +local registeredEvents = {} +local originalRegisterEvent = addon.RegisterEvent +function addon:RegisterEvent(event, callback, arg) + registeredEvents[event] = true + if arg ~= nil then + return originalRegisterEvent(self, event, callback, arg) + elseif callback ~= nil then + return originalRegisterEvent(self, event, callback) + else + return originalRegisterEvent(self, event) + end +end + +local originalUnregisterEvent = addon.UnregisterEvent +function addon:UnregisterEvent(event) + registeredEvents[event] = nil + return originalUnregisterEvent(self, event) +end + +function addon:UnregisterAllEvents() + for event in pairs(registeredEvents) do + self:UnregisterEvent(event) + end +end + +local registeredFrames = {} +function addon:RegisterFrame(frame) + tinsert(registeredFrames, frame) +end + +function addon:HideAllFrames() + for key, frame in pairs(registeredFrames) do + if frame then + frame:Hide() + end + end +end + function addon:ConvertItems() for itemName, value in pairs(self.db.factionrealm.item_account) do local itemID = self:GetItemID(itemName)