X-Git-Url: http://git.maemo.org/git/?p=python-purple;a=blobdiff_plain;f=core%2Fcore.pxd;h=7f2fa685801ef85e025df7b15d87e8db8e0bf4e7;hp=cec0e1ac772acb5e17fd06e4b1bccdd27cc30d53;hb=4dd540b8a4896ede6e99f7c7869fddf417d90f1a;hpb=b3a2eb6281cdcd9743c29ecbdb58d906c2f8be19 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) - """