aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-plugin.c
diff options
context:
space:
mode:
authorSankarasivasubramanian Pasupathilingam <psankar@src.gnome.org>2007-07-26 19:28:11 +0800
committerSankarasivasubramanian Pasupathilingam <psankar@src.gnome.org>2007-07-26 19:28:11 +0800
commit81a1525568ec94fd82b55e2d74510ec8c8fcdb5f (patch)
treeae3e94018925c24f0995fa4367b1502fda15cb24 /e-util/e-plugin.c
parentc1a6b6f8d3b5026a872c86c6ccc4a1b21efdc4e6 (diff)
downloadgsoc2013-evolution-81a1525568ec94fd82b55e2d74510ec8c8fcdb5f.tar.gz
gsoc2013-evolution-81a1525568ec94fd82b55e2d74510ec8c8fcdb5f.tar.zst
gsoc2013-evolution-81a1525568ec94fd82b55e2d74510ec8c8fcdb5f.zip
Plugins should be configurable within the plugin-manager itself.
Fixes Preferences dialog bloating. See bug #459522 svn path=/trunk/; revision=33847
Diffstat (limited to 'e-util/e-plugin.c')
-rw-r--r--e-util/e-plugin.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/e-util/e-plugin.c b/e-util/e-plugin.c
index cb0364d6be..28d6c962fa 100644
--- a/e-util/e-plugin.c
+++ b/e-util/e-plugin.c
@@ -682,6 +682,21 @@ e_plugin_enable(EPlugin *ep, int state)
}
/**
+* e_plugin_configure:
+* @ep:
+*
+*
+**/
+
+void
+e_plugin_configure (EPlugin *ep)
+{
+ EPluginClass *ptr;
+ ptr = ((EPluginClass *)G_OBJECT_GET_CLASS(ep));
+ ptr->configure (ep);
+}
+
+/**
* e_plugin_xml_prop:
* @node: An XML node.
* @id: The name of the property to retrieve.
@@ -912,6 +927,24 @@ epl_construct(EPlugin *ep, xmlNodePtr root)
}
static void
+epl_configure (EPlugin *ep)
+{
+ EPluginLibConfigureFunc configure;
+
+ pd(printf ("\n epl_configure \n"));
+
+ if (epl_loadmodule(ep) != 0) {
+ pd(printf ("\n epl_loadmodule \n"));
+ return;
+ }
+
+ if (g_module_symbol(epl->module, "e_plugin_lib_configure", (void *)&configure)) {
+ pd(printf ("\n g_module_symbol is loaded\n"));
+ configure (epl);
+ }
+}
+
+static void
epl_enable(EPlugin *ep, int state)
{
EPluginLibEnableFunc enable;
@@ -958,6 +991,7 @@ epl_class_init(EPluginClass *klass)
klass->construct = epl_construct;
klass->invoke = epl_invoke;
klass->enable = epl_enable;
+ klass->configure = epl_configure;
klass->type = "shlib";
}