#ifndef _MAPPER_UI_COMMON_H
#define _MAPPER_UI_COMMON_H
-#include <config.h>
-
-#define _GNU_SOURCE
+#include "config.h"
#include <unistd.h>
#include <stdlib.h>
#include <glib/gstdio.h>
#include <gtk/gtk.h>
#include <fcntl.h>
-#include <gdk/gdkkeysyms.h>
-#include <libgnomevfs/gnome-vfs.h>
-#include <curl/multi.h>
-#include <gconf/gconf-client.h>
-#include <libxml/parser.h>
+#include "gps.h"
#include "mapper-types.h"
#include "ui-maemo.h"
#include "hildon-wrappers.h"
+#include "path.h"
+
+#define SCALE_WIDTH (200)
/** The main GtkContainer of the application. */
GtkWidget *_window;
+GtkWidget *_gps_widget;
+GtkWidget *_map;
+GtkWidget *_toolbar;
-/** The widget that provides the visual display of the map. */
-GtkWidget *_map_widget;
+/* GPS Tab widget */
+GtkWidget *_gps_sat_view;
-/** The backing pixmap of _map_widget. */
-GdkPixmap *_map_pixmap;
+/* Heading Tab widget */
+GtkWidget *_tab_compass;
-GtkWidget *_gps_widget;
-GtkWidget *_text_lat;
-GtkWidget *_text_lon;
-GtkWidget *_text_speed;
-GtkWidget *_text_alt;
-GtkWidget *_text_dop;
-GtkWidget *_text_time;
+/* Panel widgets */
+GtkWidget *_gps_compass;
+GtkWidget *_gps_signal;
-GtkWidget *_sat_panel;
-GtkWidget *_heading_panel;
-
-GtkWidget *_sat_details_panel;
GtkWidget *_sdi_lat;
GtkWidget *_sdi_lon;
GtkWidget *_sdi_spd;
GtkWidget *_sdi_msp;
/** Pango stuff. */
-GdkRectangle _scale_rect;
-PangoContext *_scale_context;
-PangoFontDescription *_scale_font;
-PangoLayout *_scale_layout;
-GdkGC *_speed_limit_gc1;
-GdkGC *_speed_limit_gc2;
-PangoContext *_speed_limit_context;
-PangoLayout *_speed_limit_layout;
-PangoFontDescription *_speed_limit_fontdesc;
PangoContext *_sat_panel_context;
PangoLayout *_sat_panel_layout;
PangoFontDescription *_sat_panel_fontdesc;
-PangoContext *_heading_panel_context;
-PangoLayout *_heading_panel_layout;
-PangoFontDescription *_heading_panel_fontdesc;
GdkGC *_sat_info_gc1;
GdkGC *_sat_info_gc2;
PangoContext *_sat_info_context;
PangoLayout *_sat_info_layout;
PangoFontDescription *_sat_info_fontdesc;
-PangoContext *_sat_details_context;
-PangoLayout *_sat_details_layout;
-PangoFontDescription *_sat_details_fontdesc;
-PangoContext *_sat_details_expose_context;
-PangoLayout *_sat_details_expose_layout;
-PangoFontDescription *_sat_details_expose_fontdesc;
-#define SCALE_WIDTH (100)
/** THE GdkGC OBJECTS USED FOR DRAWING. */
GdkGC *_gc[COLORABLE_ENUM_COUNT];
GdkColor _color[COLORABLE_ENUM_COUNT];
-/* Menu items for the "Route" submenu. */
-GtkWidget *_menu_route_download_item;
-GtkWidget *_menu_route_open_item;
-GtkWidget *_menu_route_save_item;
-GtkWidget *_menu_route_distnext_item;
-GtkWidget *_menu_route_distlast_item;
-GtkWidget *_menu_route_reset_item;
-GtkWidget *_menu_route_clear_item;
-
-/* Menu items for the "Track" submenu. */
-GtkWidget *_menu_track_open_item;
-GtkWidget *_menu_track_save_item;
-GtkWidget *_menu_track_insert_break_item;
-GtkWidget *_menu_track_insert_mark_item;
-GtkWidget *_menu_track_distlast_item;
-GtkWidget *_menu_track_distfirst_item;
-GtkWidget *_menu_track_clear_item;
-GtkWidget *_menu_track_filter;
-
-/* Menu items for the "Maps" submenu. */
-GtkWidget *_menu_maps_submenu;
-GtkWidget *_menu_maps_mapman_item;
-GtkWidget *_menu_maps_repoman_item;
-GtkWidget *_menu_auto_download_item;
-
-/* Menu items for the "View" submenu. */
-GtkWidget *_menu_zoomin_item;
-GtkWidget *_menu_zoomout_item;
-GtkWidget *_menu_fullscreen_item;
-GtkWidget *_menu_show_scale_item;
-GtkWidget *_menu_show_routes_item;
-GtkWidget *_menu_show_tracks_item;
-GtkWidget *_menu_show_velvec_item;
-GtkWidget *_menu_show_poi_item;
-GtkWidget *_menu_poi_item;
-
/* Toolbar items */
-GtkToolItem *_toolbar_fullscreen_item;
GtkProgressBar *_progress_item;
-/* Menu items for the "Auto-Center" submenu. */
-GtkWidget *_menu_ac_latlon_item;
-GtkWidget *_menu_ac_lead_item;
-GtkWidget *_menu_ac_none_item;
-
-/* Menu items for the "Go to" submenu. */
-GtkWidget *_menu_goto_home;
-GtkWidget *_menu_goto_destination;
-GtkWidget *_menu_goto_address;
-GtkWidget *_menu_goto_latlon;
-GtkWidget *_menu_goto_gps;
-GtkWidget *_menu_goto_nextway;
-GtkWidget *_menu_goto_nearpoi;
-
-/* Menu items for the "GPS" submenu. */
-GtkWidget *_menu_enable_gps_item;
-GtkWidget *_menu_gps_show_info_item;
-GtkWidget *_menu_gps_details_item;
-GtkWidget *_menu_gps_reset_item;
-
-/* Menu items for the other menu items. */
-GtkWidget *_menu_settings_item;
-GtkWidget *_menu_help_item;
-GtkWidget *_menu_about_item;
-GtkWidget *_menu_close_item;
-
/* Menu items for the "Location" context menu. */
GtkWidget *_cmenu_loc_show_latlon_item;
GtkWidget *_cmenu_loc_clip_latlon_item;
GtkWidget *_cmenu_loc_distance_to_item;
GtkWidget *_cmenu_loc_add_route;
GtkWidget *_cmenu_loc_add_way;
-GtkWidget *_cmenu_loc_add_poi;
GtkWidget *_cmenu_loc_set_gps;
GtkWidget *_cmenu_loc_set_destination;
GtkWidget *_cmenu_loc_set_home;
GtkWidget *_cmenu_poi_edit_poi;
GtkWidget *_cmenu_poi_route_to_item;
GtkWidget *_cmenu_poi_distance_to_item;
+GtkWidget *_cmenu_loc_add_poi;
GtkWidget *_cmenu_poi_add_route;
GtkWidget *_cmenu_poi_add_way;
GtkWidget *_cmenu_poi_goto_nearpoi;
/* Banners/Progress bars */
-GtkWidget *_download_banner;
GtkWidget *_status_bar;
struct _info_banner {
GtkWidget *container;
GtkWidget *location;
GtkWidget *speed;
+ GtkWidget *distance;
};
struct _info_banner info_banner;
+gint _show_tracks;
+gboolean _show_scale;
+gboolean _show_velvec;
+gboolean _show_poi;
+
GtkMenu *_menu_map;
-/** Context menu click location on map */
-guint _cmenu_position_x;
-guint _cmenu_position_y;
+GtkWidget *route_tree_view;
+GtkWidget *track_tree_view;
+
+Path *_route;
+Path *_track;
+AutoRouteDownloadData _autoroute_data;
+
+void mapper_ui_init(void);
gboolean window_present();
-void popup_error(GtkWidget * window, const gchar * error);
+
+void set_action_sensitive(const char *name, gboolean sensitive);
+void set_action_activate(const char *name, gboolean active);
+
+/* XXX: Not the right place but.. */
+gboolean gps_info_update(Gps *gps);
+gboolean gps_location_update(Gps *gps);
+gboolean gps_retry_connection(Gps *gps, const gchar *error);
#endif