#include "utils.h"
#include "mapper-types.h"
+typedef enum {
+ MAP_MODE_NORMAL=0,
+ MAP_MODE_DRAW_TRACK,
+ MAP_MODE_DRAW_ROUTE,
+ MAP_MODE_SET_ROUTE_FROM,
+ MAP_MODE_SET_ROUTE_POINT,
+ MAP_MODE_SET_ROUTE_TO,
+ MAP_MODES
+} MapMode;
+
/** VARIABLES FOR MAINTAINING STATE OF THE CURRENT VIEW. */
/** The "zoom" level defines the resolution of a pixel, from 0 to MAX_ZOOM.
guint _focus_unitheight;
guint _world_size_tiles;
-/** VARIABLES FOR ACCESSING THE LOCATION/BOUNDS OF THE CURRENT MARK. */
-gint _mark_x1;
-gint _mark_x2;
-gint _mark_y1;
-gint _mark_y2;
-gint _mark_minx;
-gint _mark_miny;
-gint _mark_width;
-gint _mark_height;
-
-/** DOWNLOAD PROGRESS. */
-CURLM *_curl_multi;
-GQueue *_curl_easy_queue;
-guint _num_downloads;
-guint _curr_download;
-GTree *_pui_tree;
-GTree *_downloading_tree;
-GHashTable *_pui_by_easy;
-
guint _key_zoom_new;
guint _key_zoom_timeout_sid;
+gboolean _map_location_known;
+gdouble _map_location_dist;
+
+/** The widget that provides the visual display of the map. */
+GtkWidget *_map_widget;
+
+/** The backing pixmap of _map_widget. */
+GdkPixmap *_map_pixmap;
+
+GtkWidget *map_new(void);
+
gboolean map_key_zoom_timeout();
-gboolean curl_download_timeout();
+
+int map_zoom(gint zdir);
+gboolean map_zoom_in(void);
+gboolean map_zoom_out(void);
+void map_set_autozoom(gboolean az);
+void map_render_path(Path * path, GdkGC ** gc);
+void map_pan(gint delta_unitx, gint delta_unity);
+void map_move_mark(void);
+void map_set_mark(void);
+void map_render_data(void);
+
+void map_render_tile(guint tilex, guint tiley, guint destx, guint desty, gboolean fast_fail);
+
+void map_center_unit(guint new_center_unitx, guint new_center_unity);
+void map_center_latlon(gdouble lat, gdouble lon);
+
+gboolean map_goto_position(Position *pos);
+gboolean map_update_location_from_center(void);
#endif