1 #ifndef _MAPPER_UI_COMMON_H
2 #define _MAPPER_UI_COMMON_H
17 #include <glib/gstdio.h>
20 #include <gdk/gdkkeysyms.h>
21 #include <libgnomevfs/gnome-vfs.h>
22 #include <curl/multi.h>
23 #include <gconf/gconf-client.h>
24 #include <libxml/parser.h>
26 #include "mapper-types.h"
28 #include "hildon-wrappers.h"
30 /** The main GtkContainer of the application. */
33 /** The widget that provides the visual display of the map. */
34 GtkWidget *_map_widget;
36 /** The backing pixmap of _map_widget. */
37 GdkPixmap *_map_pixmap;
39 GtkWidget *_gps_widget;
42 GtkWidget *_text_speed;
45 GtkWidget *_text_time;
47 GtkWidget *_sat_panel;
48 GtkWidget *_heading_panel;
50 GtkWidget *_sat_details_panel;
64 GdkRectangle _scale_rect;
65 PangoContext *_scale_context;
66 PangoFontDescription *_scale_font;
67 PangoLayout *_scale_layout;
68 GdkGC *_speed_limit_gc1;
69 GdkGC *_speed_limit_gc2;
70 PangoContext *_speed_limit_context;
71 PangoLayout *_speed_limit_layout;
72 PangoFontDescription *_speed_limit_fontdesc;
73 PangoContext *_sat_panel_context;
74 PangoLayout *_sat_panel_layout;
75 PangoFontDescription *_sat_panel_fontdesc;
76 PangoContext *_heading_panel_context;
77 PangoLayout *_heading_panel_layout;
78 PangoFontDescription *_heading_panel_fontdesc;
81 PangoContext *_sat_info_context;
82 PangoLayout *_sat_info_layout;
83 PangoFontDescription *_sat_info_fontdesc;
84 PangoContext *_sat_details_context;
85 PangoLayout *_sat_details_layout;
86 PangoFontDescription *_sat_details_fontdesc;
87 PangoContext *_sat_details_expose_context;
88 PangoLayout *_sat_details_expose_layout;
89 PangoFontDescription *_sat_details_expose_fontdesc;
90 #define SCALE_WIDTH (100)
92 /** THE GdkGC OBJECTS USED FOR DRAWING. */
93 GdkGC *_gc[COLORABLE_ENUM_COUNT];
94 GdkColor _color[COLORABLE_ENUM_COUNT];
96 /* Menu items for the "Route" submenu. */
97 GtkWidget *_menu_route_download_item;
98 GtkWidget *_menu_route_open_item;
99 GtkWidget *_menu_route_save_item;
100 GtkWidget *_menu_route_distnext_item;
101 GtkWidget *_menu_route_distlast_item;
102 GtkWidget *_menu_route_reset_item;
103 GtkWidget *_menu_route_clear_item;
105 /* Menu items for the "Track" submenu. */
106 GtkWidget *_menu_track_open_item;
107 GtkWidget *_menu_track_save_item;
108 GtkWidget *_menu_track_insert_break_item;
109 GtkWidget *_menu_track_insert_mark_item;
110 GtkWidget *_menu_track_distlast_item;
111 GtkWidget *_menu_track_distfirst_item;
112 GtkWidget *_menu_track_clear_item;
113 GtkWidget *_menu_track_filter;
115 /* Menu items for the "Maps" submenu. */
116 GtkWidget *_menu_maps_submenu;
117 GtkWidget *_menu_maps_mapman_item;
118 GtkWidget *_menu_maps_repoman_item;
119 GtkWidget *_menu_auto_download_item;
121 /* Menu items for the "View" submenu. */
122 GtkWidget *_menu_zoomin_item;
123 GtkWidget *_menu_zoomout_item;
124 GtkWidget *_menu_fullscreen_item;
125 GtkWidget *_menu_show_scale_item;
126 GtkWidget *_menu_show_routes_item;
127 GtkWidget *_menu_show_tracks_item;
128 GtkWidget *_menu_show_velvec_item;
129 GtkWidget *_menu_show_poi_item;
130 GtkWidget *_menu_poi_item;
133 GtkToolItem *_toolbar_fullscreen_item;
134 GtkProgressBar *_progress_item;
136 /* Menu items for the "Auto-Center" submenu. */
137 GtkWidget *_menu_ac_latlon_item;
138 GtkWidget *_menu_ac_lead_item;
139 GtkWidget *_menu_ac_none_item;
141 /* Menu items for the "Go to" submenu. */
142 GtkWidget *_menu_goto_home;
143 GtkWidget *_menu_goto_latlon;
144 GtkWidget *_menu_goto_gps;
145 GtkWidget *_menu_goto_nextway;
146 GtkWidget *_menu_goto_nearpoi;
148 /* Menu items for the "GPS" submenu. */
149 GtkWidget *_menu_enable_gps_item;
150 GtkWidget *_menu_gps_show_info_item;
151 GtkWidget *_menu_gps_details_item;
152 GtkWidget *_menu_gps_reset_item;
154 /* Menu items for the other menu items. */
155 GtkWidget *_menu_settings_item;
156 GtkWidget *_menu_help_item;
157 GtkWidget *_menu_about_item;
158 GtkWidget *_menu_close_item;
160 /* Menu items for the "Location" context menu. */
161 GtkWidget *_cmenu_loc_show_latlon_item;
162 GtkWidget *_cmenu_loc_clip_latlon_item;
163 GtkWidget *_cmenu_loc_route_to_item;
164 GtkWidget *_cmenu_loc_distance_to_item;
165 GtkWidget *_cmenu_loc_add_route;
166 GtkWidget *_cmenu_loc_add_way;
167 GtkWidget *_cmenu_loc_add_poi;
168 GtkWidget *_cmenu_loc_set_gps;
169 GtkWidget *_cmenu_loc_set_home;
171 /* Menu items for the "Waypoint" context menu. */
172 GtkWidget *_cmenu_way_show_latlon_item;
173 GtkWidget *_cmenu_way_show_desc_item;
174 GtkWidget *_cmenu_way_clip_latlon_item;
175 GtkWidget *_cmenu_way_clip_desc_item;
176 GtkWidget *_cmenu_way_route_to_item;
177 GtkWidget *_cmenu_way_distance_to_item;
178 GtkWidget *_cmenu_way_delete_item;
179 GtkWidget *_cmenu_way_add_poi;
180 GtkWidget *_cmenu_way_goto_nextway;
182 /* Menu items for the "POI" context menu. */
183 GtkWidget *_cmenu_poi;
184 GtkWidget *_cmenu_poi_edit_poi;
185 GtkWidget *_cmenu_poi_route_to_item;
186 GtkWidget *_cmenu_poi_distance_to_item;
187 GtkWidget *_cmenu_poi_add_route;
188 GtkWidget *_cmenu_poi_add_way;
189 GtkWidget *_cmenu_poi_goto_nearpoi;
191 /* Banners/Progress bars */
192 GtkWidget *_download_banner;
193 GtkWidget *_status_bar;
195 struct _info_banner {
196 GtkWidget *container;
200 struct _info_banner info_banner;
204 /** Context menu click location on map */
205 guint _cmenu_position_x;
206 guint _cmenu_position_y;
208 gboolean window_present();
209 void popup_error(GtkWidget * window, const gchar * error);