]> Pileus Git - grits/blobdiff - src/gis-viewer.h
Cleanup memory on exit
[grits] / src / gis-viewer.h
index 999d3d11e60ea94245e63c6d47aa03fd9160325a..102136ca8a9f009509426572a8207dc256cf67fa 100644 (file)
 #include <gtk/gtk.h>
 #include <glib-object.h>
 
+#define GIS_LEVEL_BACKGROUND -100
+#define GIS_LEVEL_WORLD         0
+#define GIS_LEVEL_OVERLAY     100
+#define GIS_LEVEL_HUD         200
+
 /* Type macros */
 #define GIS_TYPE_VIEWER            (gis_viewer_get_type())
 #define GIS_VIEWER(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),   GIS_TYPE_VIEWER, GisViewer))
@@ -36,6 +41,7 @@ typedef gdouble (*GisHeightFunc)(gdouble lat, gdouble lon, gpointer user_data);
 
 #include "gis-tile.h"
 #include "gis-plugin.h"
+#include "gis-object.h"
 
 struct _GisViewer {
        GtkDrawingArea parent_instance;
@@ -43,7 +49,6 @@ struct _GisViewer {
        /* instance members */
        GisPlugins *plugins;
        gchar      *time;
-       gchar      *site;
        gdouble     location[3];
        gdouble     rotation[3];
        gboolean    offline;
@@ -70,6 +75,10 @@ struct _GisViewerClass {
 
        void (*begin)            (GisViewer *viewer);
        void (*end)              (GisViewer *viewer);
+
+       gpointer (*add)          (GisViewer *viewer, GisObject *object,
+                                 gint level, gboolean sort);
+       void (*remove)           (GisViewer *viewer, gpointer ref);
 };
 
 GType gis_viewer_get_type(void);
@@ -89,10 +98,6 @@ void gis_viewer_set_rotation(GisViewer *viewer, gdouble  x, gdouble  y, gdouble
 void gis_viewer_get_rotation(GisViewer *viewer, gdouble *x, gdouble *y, gdouble *z);
 void gis_viewer_rotate      (GisViewer *viewer, gdouble  x, gdouble  y, gdouble  z);
 
-/* To be deprecated, use {get,set}_location */
-void gis_viewer_set_site(GisViewer *viewer, const gchar *site);
-gchar *gis_viewer_get_site(GisViewer *viewer);
-
 void gis_viewer_refresh(GisViewer *viewer);
 
 void gis_viewer_set_offline(GisViewer *viewer, gboolean offline);
@@ -117,4 +122,8 @@ void gis_viewer_render_tiles(GisViewer *viewer, GisTile *root);
 void gis_viewer_begin(GisViewer *viewer);
 void gis_viewer_end  (GisViewer *viewer);
 
+gpointer gis_viewer_add(GisViewer *self, GisObject *object,
+               gint level, gboolean sort);
+void gis_viewer_remove(GisViewer *self, gpointer ref);
+
 #endif