diff options
author | Not Zed <NotZed@Ximian.com> | 2004-11-03 15:24:41 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2004-11-03 15:24:41 +0800 |
commit | bf47fc3d5125846c517f935de1f5506b9bd3f056 (patch) | |
tree | 1313a7030c7cd355eb222ef0ea5ca98f99f271f1 /e-util/e-plugin.h | |
parent | d3a3af650720f48f4cc493c00d1f8c7f4308c95b (diff) | |
download | gsoc2013-evolution-bf47fc3d5125846c517f935de1f5506b9bd3f056.tar.gz gsoc2013-evolution-bf47fc3d5125846c517f935de1f5506b9bd3f056.tar.zst gsoc2013-evolution-bf47fc3d5125846c517f935de1f5506b9bd3f056.zip |
added helper api to list all plugins. (ep_construct): load authors into
2004-11-03 Not Zed <NotZed@Ximian.com>
* e-plugin.c (e_plugin_list_plugins): added helper api to list all
plugins.
(ep_construct): load authors into new list for them.
(e_plugin_register_type): setup disabled list.
(ep_construct): dont load the hooks if we're not enabled.
(e_plugin_enable): make this a virutal method.
(e_plugin_invoke): if we're disabled, noop.
svn path=/trunk/; revision=27809
Diffstat (limited to 'e-util/e-plugin.h')
-rw-r--r-- | e-util/e-plugin.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/e-util/e-plugin.h b/e-util/e-plugin.h index 60635ae2dc..efc53d5108 100644 --- a/e-util/e-plugin.h +++ b/e-util/e-plugin.h @@ -13,6 +13,13 @@ typedef struct _EPluginClass EPluginClass; #define E_PLUGIN_CLASSID "org.gnome.evolution.plugin" +/* Structure to define the author(s) names and addresses */ +typedef struct _EPluginAuthor EPluginAuthor; +struct _EPluginAuthor { + char *name; + char *email; +}; + /** * struct _EPlugin - An EPlugin instance. * @@ -43,6 +50,7 @@ struct _EPlugin { char *name; char *domain; GSList *hooks; + GSList *authors; /* EPluginAuthor structures */ int enabled:1; }; @@ -59,6 +67,7 @@ struct _EPlugin { * @invoke: The invoke virtual method loads the plugin code, resolves * the function name, and marshals a simple pointer to execute the * plugin. + * @enable: Virtual method to enable/disable the plugin. * * The EPluginClass represents each plugin type. The type of each class is * registered in a global table and is used to instantiate a @@ -75,6 +84,7 @@ struct _EPluginClass { int (*construct)(EPlugin *, xmlNodePtr root); void *(*invoke)(EPlugin *, const char *name, void *data); + void (*enable)(EPlugin *, int state); }; GType e_plugin_get_type(void); @@ -82,6 +92,7 @@ GType e_plugin_get_type(void); int e_plugin_construct(EPlugin *ep, xmlNodePtr root); void e_plugin_add_load_path(const char *); int e_plugin_load_plugins(void); +GSList * e_plugin_list_plugins(void); void e_plugin_register_type(GType type); |