X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/50a14534a51f892500ee82f867e8ab2f85b936ae..5a37f6455110be56f334bd1e61c423f090421047:/src/vikmapslayer.h diff --git a/src/vikmapslayer.h b/src/vikmapslayer.h index 39f17e4c..d32ca8eb 100644 --- a/src/vikmapslayer.h +++ b/src/vikmapslayer.h @@ -22,6 +22,11 @@ #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,22 @@ 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 ); + int (*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 ); +void maps_layer_download_section_without_redraw ( VikMapsLayer *vml, VikViewport *vvp, VikCoord *ul, VikCoord *br, gdouble zoom); +gint vik_maps_layer_get_map_type(VikMapsLayer *vml); +gchar *vik_maps_layer_get_map_label(VikMapsLayer *vml); +gchar *maps_layer_default_dir (); + + #endif