From f4d3ee5d5923e8a91b45fc6dd8eb8fb2857f41de Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Tue, 4 Dec 2007 10:57:59 +0000 Subject: ** Fix for bug #500210 2007-12-04 Milan Crha ** Fix for bug #500210 * plugins/plugin-manager/plugin-manager.c: Changed coding-style to be more accurate to other sources, but the main change was to show configuration options of the plugin into extra tab, instead of new popup under 'Configure' button. * e-util/e-plugin.h: * e-util/e-plugin.c: (e_plugin_configure), (e_plugin_is_configurable), (epl_configure), (e_plugin_get_configure_widget), (epl_get_configure_widget): Removed old configure functions, replaced by get_configure_widget functions, to be able show plugin configuration in a tab of plugin manager. svn path=/trunk/; revision=34639 --- e-util/e-plugin.c | 58 ++++++++++++++++++++++--------------------------------- 1 file changed, 23 insertions(+), 35 deletions(-) (limited to 'e-util/e-plugin.c') diff --git a/e-util/e-plugin.c b/e-util/e-plugin.c index 054298a942..0a87513adf 100644 --- a/e-util/e-plugin.c +++ b/e-util/e-plugin.c @@ -685,18 +685,20 @@ e_plugin_enable(EPlugin *ep, int state) } /** -* e_plugin_configure: -* @ep: -* -* -**/ - -void -e_plugin_configure (EPlugin *ep) + * e_plugin_get_configure_widget + * + * @param ep EPlugin of our interest. + * @return Configure widget or NULL if there is no configure option for the plugin. + * + * Plugin itself should have implemented "e_plugin_lib_get_configure_widget" function + * of prototype EPluginLibGetConfigureWidgetFunc. + **/ +GtkWidget * +e_plugin_get_configure_widget (EPlugin *ep) { EPluginClass *ptr; ptr = ((EPluginClass *)G_OBJECT_GET_CLASS(ep)); - ptr->configure (ep); + return ptr->get_configure_widget (ep); } /** @@ -929,37 +931,23 @@ epl_construct(EPlugin *ep, xmlNodePtr root) return 0; } -gboolean -e_plugin_is_configurable (EPlugin *ep) +static GtkWidget * +epl_get_configure_widget (EPlugin *ep) { - EPluginLibConfigureFunc configure; - - pd(printf ("\n epl_configure \n")); + EPluginLibGetConfigureWidgetFunc get_configure_widget; - if (epl_loadmodule(ep) != 0) { - pd(printf ("\n epl_loadmodule \n")); - return FALSE; - } + pd (printf ("\n epl_get_configure_widget \n")); - if (g_module_symbol(epl->module, "e_plugin_lib_configure", (void *)&configure)) { - pd(printf ("\n g_module_symbol is loaded\n")); - return TRUE; + if (epl_loadmodule (ep) != 0) { + pd (printf ("\n epl_loadmodule \n")); + return NULL; } - return FALSE; -} - -static void -epl_configure (EPlugin *ep) -{ - EPluginLibConfigureFunc configure; - - pd(printf ("\n epl_configure \n")); - /* Probably we dont need a load_module */ - if (g_module_symbol(epl->module, "e_plugin_lib_configure", (void *)&configure)) { - pd(printf ("\n g_module_symbol is loaded\n")); - configure (epl); + if (g_module_symbol (epl->module, "e_plugin_lib_get_configure_widget", (void *)&get_configure_widget)) { + pd (printf ("\n g_module_symbol is loaded\n")); + return (GtkWidget*) get_configure_widget (epl); } + return NULL; } static void @@ -1009,7 +997,7 @@ epl_class_init(EPluginClass *klass) klass->construct = epl_construct; klass->invoke = epl_invoke; klass->enable = epl_enable; - klass->configure = epl_configure; + klass->get_configure_widget = epl_get_configure_widget; klass->type = "shlib"; } -- cgit v1.2.3