]> git.street.me.uk Git - andy/viking.git/blobdiff - src/vikmapslayer.h
Merged branch modular (r146:173) to trunk
[andy/viking.git] / src / vikmapslayer.h
index 39f17e4c24254154eabcd76ffb7891c248fbfe30..db157c02767bd398beb23843a664d0a562e62f0d 100644 (file)
 #ifndef _VIKING_MAPSLAYER_H
 #define _VIKING_MAPSLAYER_H
 
+#include "vikcoord.h"
+#include "viklayer.h"
+#include "vikviewport.h"
+#include "mapcoord.h"
+
 #define VIK_MAPS_LAYER_TYPE            (vik_maps_layer_get_type ())
 #define VIK_MAPS_LAYER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIK_MAPS_LAYER_TYPE, VikMapsLayer))
 #define VIK_MAPS_LAYER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), VIK_MAPS_LAYER_TYPE, VikMapsLayerClass))
@@ -38,4 +43,17 @@ GType vik_maps_layer_get_type ();
 
 typedef struct _VikMapsLayer VikMapsLayer;
 
+typedef struct {
+  guint8 uniq_id;
+  guint16 tilesize_x;
+  guint16 tilesize_y;
+  guint drawmode;
+  gboolean (*coord_to_mapcoord) ( const VikCoord *src, gdouble xzoom, gdouble yzoom, MapCoord *dest );
+  void (*mapcoord_to_center_coord) ( MapCoord *src, VikCoord *dest );
+  void (*download) ( MapCoord *src, const gchar *dest_fn );
+  /* TODO: constant size (yay!) */
+} VikMapsLayer_MapType;
+
+void maps_layer_register_type ( const char *label, guint id, VikMapsLayer_MapType *map_type );
+
 #endif