X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=src%2Fgis-plugin.h;h=7ba3ae8979bf7a32e1b6b8fdaffc1ac5760e5c04;hb=7b2073d0ef64ae7bdd6e2ddd31cfd0961bdf749a;hp=a667fba8919dcf5ca1dcb0ede0896e6d8513686f;hpb=14cdbb4a9c369576a5485315260fad5285935e80;p=grits diff --git a/src/gis-plugin.h b/src/gis-plugin.h index a667fba..7ba3ae8 100644 --- a/src/gis-plugin.h +++ b/src/gis-plugin.h @@ -1,16 +1,16 @@ /* * Copyright (C) 2009 Andy Spencer - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ @@ -28,14 +28,13 @@ typedef struct _GisPlugin GisPlugin; typedef struct _GisPluginInterface GisPluginInterface; -typedef GPtrArray GisPlugins; +typedef struct _GisPlugins GisPlugins; struct _GisPluginInterface { GTypeInterface parent_iface; /* Virtual functions */ - void (*expose )(GisPlugin *self); GtkWidget *(*get_config)(GisPlugin *self); }; @@ -46,19 +45,22 @@ void gis_plugin_expose(GisPlugin *self); GtkWidget *gis_plugin_get_config(GisPlugin *self); /* Plugins API */ -#include "gis-world.h" -#include "gis-view.h" -#include "gis-opengl.h" +#include "gis-viewer.h" #include "gis-prefs.h" -typedef GisPlugin *(*GisPluginConstructor)(GisWorld *world, GisView *view, GisOpenGL *opengl, GisPrefs *prefs); +struct _GisPlugins { + gchar *dir; + GPtrArray *plugins; +}; + +typedef GisPlugin *(*GisPluginConstructor)(GisViewer *viewer, GisPrefs *prefs); -GisPlugins *gis_plugins_new(); +GisPlugins *gis_plugins_new(gchar *dir); void gis_plugins_free(); -GList *gis_plugins_available(); -GisPlugin *gis_plugins_load(GisPlugins *self, const char *name, - GisWorld *world, GisView *view, GisOpenGL *opengl, GisPrefs *prefs); -gboolean gis_plugins_unload(GisPlugins *self, const char *name); -void gis_plugins_foreach(GisPlugins *self, GCallback callback, gpointer user_data); +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); #endif