X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgis-plugin.h;h=1bc73dc58e7a9d15706d55f7447e120a492dad90;hb=bd716715f1d13a8df514fcfa53fd82aebdfda770;hp=685c8a125bb39d6606ab76cdf95059016c478a42;hpb=c2e39b9d64035038a19d753129cc2124b4ed1382;p=grits diff --git a/src/gis-plugin.h b/src/gis-plugin.h index 685c8a1..1bc73dc 100644 --- a/src/gis-plugin.h +++ b/src/gis-plugin.h @@ -34,33 +34,54 @@ struct _GisPluginInterface { GTypeInterface parent_iface; + /* Virtual data */ + const gchar *name; + const gchar *description; + /* Virtual functions */ - GtkWidget *(*get_config)(GisPlugin *self); + GtkWidget *(*get_config)(GisPlugin *plugin); }; GType gis_plugin_get_type(); /* Methods */ -void gis_plugin_expose(GisPlugin *self); -GtkWidget *gis_plugin_get_config(GisPlugin *self); +const gchar *gis_plugin_get_name(GisPlugin *plugin); + +const gchar *gis_plugin_get_description(GisPlugin *plugin); + +GtkWidget *gis_plugin_get_config(GisPlugin *plugin); /* Plugins API */ #include "gis-viewer.h" #include "gis-prefs.h" struct _GisPlugins { - gchar *dir; - GList *plugins; + gchar *dir; + GList *plugins; + GisPrefs *prefs; }; typedef GisPlugin *(*GisPluginConstructor)(GisViewer *viewer, GisPrefs *prefs); -GisPlugins *gis_plugins_new(gchar *dir); -void gis_plugins_free(); -GList *gis_plugins_available(GisPlugins *plugins); -GisPlugin *gis_plugins_load(GisPlugins *plugins, const char *name, +GisPlugins *gis_plugins_new(const gchar *dir, GisPrefs *prefs); + +void gis_plugins_free(); + +GList *gis_plugins_available(GisPlugins *plugins); + +GisPlugin *gis_plugins_load(GisPlugins *plugins, const char *name, GisViewer *viewer, GisPrefs *prefs); -gboolean gis_plugins_unload(GisPlugins *plugins, const char *name); -void gis_plugins_foreach(GisPlugins *plugins, GCallback callback, gpointer user_data); + +GisPlugin *gis_plugins_enable(GisPlugins *plugin, const char *name, + GisViewer *viewer, GisPrefs *prefs); + +GList *gis_plugins_load_enabled(GisPlugins *plugin, + GisViewer *viewer, GisPrefs *prefs); + +gboolean gis_plugins_disable(GisPlugins *plugin, const char *name); + +gboolean gis_plugins_unload(GisPlugins *plugins, const char *name); + +void gis_plugins_foreach(GisPlugins *plugins, GCallback callback, gpointer user_data); #endif