]> err.no Git - mapper/blob - src/ui-common.h
728ba0045703181aa244b4dbbc6a5b85f116e980
[mapper] / src / ui-common.h
1 #ifndef _MAPPER_UI_COMMON_H
2 #define _MAPPER_UI_COMMON_H
3
4 #include <config.h>
5
6 #define _GNU_SOURCE
7
8 #include <unistd.h>
9 #include <stdlib.h>
10 #include <string.h>
11 #include <strings.h>
12 #include <stddef.h>
13 #include <locale.h>
14 #include <math.h>
15 #include <errno.h>
16 #include <sys/wait.h>
17 #include <glib/gstdio.h>
18 #include <gtk/gtk.h>
19 #include <fcntl.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>
25
26 #include "mapper-types.h"
27 #include "ui-maemo.h"
28 #include "hildon-wrappers.h"
29
30 /** The main GtkContainer of the application. */
31 GtkWidget *_window;
32
33 /** The widget that provides the visual display of the map. */
34 GtkWidget *_map_widget;
35
36 /** The backing pixmap of _map_widget. */
37 GdkPixmap *_map_pixmap;
38
39 GtkWidget *_gps_widget;
40 GtkWidget *_text_lat;
41 GtkWidget *_text_lon;
42 GtkWidget *_text_speed;
43 GtkWidget *_text_alt;
44 GtkWidget *_text_dop;
45 GtkWidget *_text_time;
46
47 GtkWidget *_sat_panel;
48 GtkWidget *_heading_panel;
49
50 GtkWidget *_sat_details_panel;
51 GtkWidget *_sdi_lat;
52 GtkWidget *_sdi_lon;
53 GtkWidget *_sdi_spd;
54 GtkWidget *_sdi_alt;
55 GtkWidget *_sdi_hea;
56 GtkWidget *_sdi_tim;
57 GtkWidget *_sdi_vie;
58 GtkWidget *_sdi_use;
59 GtkWidget *_sdi_fix;
60 GtkWidget *_sdi_fqu;
61 GtkWidget *_sdi_msp;
62
63 /** Pango stuff. */
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;
79 GdkGC *_sat_info_gc1;
80 GdkGC *_sat_info_gc2;
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)
91
92 /** THE GdkGC OBJECTS USED FOR DRAWING. */
93 GdkGC *_gc[COLORABLE_ENUM_COUNT];
94 GdkColor _color[COLORABLE_ENUM_COUNT];
95
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;
104
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;
114
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;
120
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;
131
132 /* Toolbar items */
133 GtkToolItem *_toolbar_fullscreen_item;
134 GtkProgressBar *_progress_item;
135
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;
140
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;
147
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;
153
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;
159
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;
170
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;
181
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;
190
191 /* Banners/Progress bars */
192 GtkWidget *_download_banner;
193 GtkWidget *_status_bar;
194
195 struct _info_banner {
196         GtkWidget *container;
197         GtkWidget *location;
198         GtkWidget *speed;
199 };
200 struct _info_banner info_banner;
201
202 GtkMenu *_menu_map;
203
204 /** Context menu click location on map */
205 guint _cmenu_position_x;
206 guint _cmenu_position_y;
207
208 gboolean window_present();
209 void popup_error(GtkWidget * window, const gchar * error);
210
211 #endif