Change struct Callbacks
authorRagner Magalhaes <ragner.magalhaes@openbossa.org>
Tue, 2 Dec 2008 20:47:57 +0000 (20:47 +0000)
committerAnderson Briglia <anderson.briglia@openbossa.org>
Sat, 28 Feb 2009 21:11:13 +0000 (17:11 -0400)
* Created a base class for manager callbacks.
* Method for add callbacks.

Signed-off-by: Ricardo Guimares <ricardo.guimaraes@indt.org.br>
Signed-off-by: Ragner Magalhaes <ragner.magalhaes@indt.org.br>

git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1352 596f6dd7-e928-0410-a184-9e12fd12cf7e

callbackbase.pyx [new file with mode: 0644]
purple.pyx

diff --git a/callbackbase.pyx b/callbackbase.pyx
new file mode 100644 (file)
index 0000000..5f6291e
--- /dev/null
@@ -0,0 +1,12 @@
+import purple
+import ecore
+
+class CallBackBase:
+    def __init__(self, dict_cbs):
+        self.cbs = dict_cbs
+    
+    def add_callback(self, name, func):
+        self.cbs[name] = func
+
+    def call_callback(self, name):
+        self.cbs[name] = (data, user)
index 00ce7fc..889a509 100644 (file)
@@ -80,6 +80,7 @@ cdef class Purple:
         # adds glib iteration inside ecore main loop
         ecore.timer_add(0.001, self.__glib_iteration_when_idle)
 
         # adds glib iteration inside ecore main loop
         ecore.timer_add(0.001, self.__glib_iteration_when_idle)
 
+
     def destroy(self):
         core.c_purple_core_quit()
 
     def destroy(self):
         core.c_purple_core_quit()
 
@@ -141,14 +142,14 @@ cdef class Purple:
         """ Initializes libpurple """
 
         if callbacks_dict is not None:
         """ Initializes libpurple """
 
         if callbacks_dict is not None:
-            global account_cbs
+            # global account_cbs
             global blist_cbs
             global connection_cbs
             global conversation_cbs
             global notify_cbs
             global request_cbs
 
             global blist_cbs
             global connection_cbs
             global conversation_cbs
             global notify_cbs
             global request_cbs
 
-            account_cbs = callbacks_dict["account"]
+            # account_cbs = callbacks_dict["account"]
             blist_cbs = callbacks_dict["blist"]
             connection_cbs = callbacks_dict["connection"]
             conversation_cbs = callbacks_dict["conversation"]
             blist_cbs = callbacks_dict["blist"]
             connection_cbs = callbacks_dict["connection"]
             conversation_cbs = callbacks_dict["conversation"]
@@ -252,6 +253,10 @@ cdef class Purple:
 
         return ret
 
 
         return ret
 
+    def add_account_cb(self, name, func):
+        global account_cbs
+        account_cbs[name] = func
+
     def connect(self):
         conn = Connection()
         conn.connect()
     def connect(self):
         conn = Connection()
         conn.connect()