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)