+GisPlugin *gis_plugins_enable(GisPlugins *plugins, const char *name,
+ GisViewer *viewer, GisPrefs *prefs)
+{
+ GisPlugin *plugin = gis_plugins_load(plugins, name, viewer, prefs);
+ gis_prefs_set_boolean_v(plugins->prefs, "plugins", name, TRUE);
+ return plugin;
+}
+
+GList *gis_plugins_load_enabled(GisPlugins *plugins,
+ GisViewer *viewer, GisPrefs *prefs)
+{
+ GList *loaded = NULL;
+ for (GList *cur = gis_plugins_available(plugins); cur; cur = cur->next) {
+ gchar *name = cur->data;
+ if (gis_prefs_get_boolean_v(plugins->prefs, "plugins", name, NULL)) {
+ GisPlugin *plugin = gis_plugins_load(plugins, name, viewer, prefs);
+ loaded = g_list_prepend(loaded, plugin);
+ }
+ }
+ return loaded;
+}
+
+gboolean gis_plugins_unload(GisPlugins *plugins, const char *name)