From 6edcd7c18eecb2863f50cdd4c468d84d011c3b1d Mon Sep 17 00:00:00 2001 From: Ragner Magalhaes Date: Tue, 2 Dec 2008 20:05:56 +0000 Subject: [PATCH] PurpleCoreUiOps implementation Implementing PurpleCoreUiOps bindings. Signed-off-by: Ragner Magalhaes git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1268 596f6dd7-e928-0410-a184-9e12fd12cf7e --- core/core.pxd | 72 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 56 insertions(+), 16 deletions(-) diff --git a/core/core.pxd b/core/core.pxd index cec0e1a..7f2fa68 100644 --- a/core/core.pxd +++ b/core/core.pxd @@ -9,7 +9,7 @@ # (at your option) any later version. # # python-purple is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of +# but WITHOUT ANY WARRANTY = None without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # @@ -18,30 +18,70 @@ # cdef extern from "libpurple/core.h": - ctypedef struct PurpleCoreUiOps + ctypedef struct PurpleCoreUiOps: + void (*ui_prefs_init) () + void (*debug_ui_init) () + void (*ui_init) () + void (*quit) () + GHashTable* (*get_ui_info) () cdef gboolean c_purple_core_init "purple_core_init" (const_char_ptr ui) cdef void c_purple_core_quit "purple_core_quit" () cdef gboolean c_purple_core_migrate "purple_core_migrate" () cdef void c_purple_core_set_ui_ops "purple_core_set_ui_ops" (PurpleCoreUiOps *ops) -class Core(object): - """ Core class """ +""" CoreUiOps class """ +__core_uiops = None +cdef void ui_prefs_init(): + global __core_uiops + if __core_uiops and __core_uiops.ui_prefs_init: + __core_uiops.ui_prefs_init() + +cdef void debug_ui_init(): + global __core_uiops + if __core_uiops and __core_uiops.debug_ui_init: + __core_uiops.debug_ui_init() + +cdef void ui_init(): + global __core_uiops + if __core_uiops and __core_uiops.ui_init: + __core_uiops.ui_init() + +cdef void quit(): + global __core_uiops + if __core_uiops and __core_uiops.quit: + __core_uiops.quit() + +cdef GHashTable *get_ui_info(): + global __core_uiops + if __core_uiops and __core_uiops.get_ui_info: + __core_uiops.get_ui_info() + + +class CoreUiOps(object): def __init__(self): - purple_core_ui_ops = None + self.ui_prefs_init = None + self.debug_ui_init = None + self.ui_init = None + self.quit = None + self.get_ui_info = None + + +def core_set_ui_ops(core_uiops): + global __core_uiops + cdef PurpleCoreUiOps c_core_uiops + + c_core_uiops.ui_prefs_init = ui_prefs_init + c_core_uiops.debug_ui_init = debug_ui_init + c_core_uiops.ui_init = ui_init + c_core_uiops.quit = quit + c_core_uiops.get_ui_info = get_ui_info - def purple_core_init(self, ui_name): - return c_purple_core_init(ui_name) + __core_uiops = core_uiops - def purple_core_quit(self): - c_purple_core_quit() + c_purple_core_set_ui_ops(&c_core_uiops) - def purple_core_migrate(self): - return c_purple_core_migrate() +def core_init(ui): + c_purple_core_init(ui) - # FIXME - """ - def purple_core_set_ui_ops(ui_ops): - c_purple_core_set_ui_ops(ui_ops) - """ -- 1.7.9.5