diff options
author | Milan Crha <mcrha@redhat.com> | 2007-12-04 18:57:59 +0800 |
---|---|---|
committer | Milan Crha <mcrha@src.gnome.org> | 2007-12-04 18:57:59 +0800 |
commit | f4d3ee5d5923e8a91b45fc6dd8eb8fb2857f41de (patch) | |
tree | 3ef9dad0d4187b2b42f3e7216a88b07e885dba79 /e-util/e-plugin.c | |
parent | 70663baf3f0e922ed4f6c5560880b66281aaf037 (diff) | |
download | gsoc2013-evolution-f4d3ee5d5923e8a91b45fc6dd8eb8fb2857f41de.tar.gz gsoc2013-evolution-f4d3ee5d5923e8a91b45fc6dd8eb8fb2857f41de.tar.zst gsoc2013-evolution-f4d3ee5d5923e8a91b45fc6dd8eb8fb2857f41de.zip |
** Fix for bug #500210
2007-12-04 Milan Crha <mcrha@redhat.com>
** 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
Diffstat (limited to 'e-util/e-plugin.c')
-rw-r--r-- | e-util/e-plugin.c | 58 |
1 files changed, 23 insertions, 35 deletions
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"; } |