From 116ed5dcc7bc07fc9a2e78aef4231bfe25fa9d0a Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 8 May 2008 18:11:40 +0000 Subject: ** Fixes bug #525241 (EPluginUI) 2008-05-08 Matthew Barnes ** Fixes bug #525241 (EPluginUI) * e-util/Makefile.am: Add e-plugin-ui.[ch]. * e-util/e-plugin.h (EPluginClass): Add a "get_symbol" method for extracting arbitrary symbols from an EPlugin. Implementation of the method is optional. * e-util/e-plugin.c (e_plugin_get_symbol): New function invokes the new "get_symbol" EPlugin method. * e-util/e-plugin.c (epl_get_symbol): New function implements the new "get_symbol" EPlugin method. It extracts the given symbol name from the GModule. * e-util/e-plugin-ui.[ch]: New EPluginHook subclass that allows plugins to extend menus, toolbars, and popups that are managed by GtkUIManager instead of BonoboUI. Should eventually replace EMenu/EPopup. * shell/main.c (main): Register the EPluginUIHook type. * composer/e-msg-composer.c (msg_composer_destroy), (msg_composer_init): Rip out the EMenu logic. * composer/e-msg-composer.c (msg_composer_init): Register the GtkUIManager with EPluginUI. * plugins/face/Makefile.am: * plugins/face/org-gnome-face-ui.xml: Remove org-gnome-face-ui.xml (obsolete). * plugins/face/face.c (e_plugin_ui_init): Initialization callback for EPluginUI. Adds a "face" action to the EMsgComposer instance's "composer" action group. * plugins/face/org-gnome-face.eplug.xml: Replace the "bonobomenu" hook definition with a new one for EPluginUI. Include the UI definition inline. svn path=/trunk/; revision=35485 --- e-util/e-plugin.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'e-util/e-plugin.h') diff --git a/e-util/e-plugin.h b/e-util/e-plugin.h index fd5955ba38..c20ed81a7f 100644 --- a/e-util/e-plugin.h +++ b/e-util/e-plugin.h @@ -86,6 +86,7 @@ struct _EPluginClass { const char *type; int (*construct)(EPlugin *, xmlNodePtr root); + void *(*get_symbol)(EPlugin *, const char *name); void *(*invoke)(EPlugin *, const char *name, void *data); void (*enable)(EPlugin *, int state); GtkWidget *(*get_configure_widget)(EPlugin *); @@ -100,6 +101,7 @@ GSList * e_plugin_list_plugins(void); void e_plugin_register_type(GType type); +void *e_plugin_get_symbol(EPlugin *ep, const char *name); void *e_plugin_invoke(EPlugin *ep, const char *name, void *data); void e_plugin_enable(EPlugin *eph, int state); -- cgit v1.2.3