From: Ragner Magalhaes Date: Tue, 2 Dec 2008 20:47:57 +0000 (+0000) Subject: Change struct Callbacks X-Git-Url: http://git.maemo.org/git/?p=python-purple;a=commitdiff_plain;h=0a6492a9288f6b1e6ec82e17ef0bbde9a014de6b;ds=sidebyside Change struct Callbacks * Created a base class for manager callbacks. * Method for add callbacks. Signed-off-by: Ricardo Guimares Signed-off-by: Ragner Magalhaes git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1352 596f6dd7-e928-0410-a184-9e12fd12cf7e --- diff --git a/callbackbase.pyx b/callbackbase.pyx new file mode 100644 index 0000000..5f6291e --- /dev/null +++ b/callbackbase.pyx @@ -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) diff --git a/purple.pyx b/purple.pyx index 00ce7fc..889a509 100644 --- a/purple.pyx +++ b/purple.pyx @@ -80,6 +80,7 @@ cdef class Purple: # 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() @@ -141,14 +142,14 @@ cdef class Purple: """ 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 - 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"] @@ -252,6 +253,10 @@ cdef class Purple: return ret + def add_account_cb(self, name, func): + global account_cbs + account_cbs[name] = func + def connect(self): conn = Connection() conn.connect()