2 * Copyright (C) 2006, 2007 John Costigan.
4 * POI and GPS-Info code originally written by Cezary Jackiewicz.
6 * Default map data provided by http://www.openstreetmap.org/
8 * This file is part of Maemo Mapper.
10 * Maemo Mapper is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation, either version 3 of the License, or
13 * (at your option) any later version.
15 * Maemo Mapper is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with Maemo Mapper. If not, see <http://www.gnu.org/licenses/>.
24 #ifndef MAEMO_MAPPER_DATA_H
25 #define MAEMO_MAPPER_DATA_H
34 /* Constants regarding enums and defaults. */
35 extern gchar *UNITS_ENUM_TEXT[UNITS_ENUM_COUNT];
36 extern gdouble UNITS_CONVERT[UNITS_ENUM_COUNT];
37 extern gchar *UNBLANK_ENUM_TEXT[UNBLANK_ENUM_COUNT];
38 extern gchar *INFO_FONT_ENUM_TEXT[INFO_FONT_ENUM_COUNT];
39 extern gchar *ROTATE_DIR_ENUM_TEXT[ROTATE_DIR_ENUM_COUNT];
40 extern gint ROTATE_DIR_ENUM_DEGREES[ROTATE_DIR_ENUM_COUNT];
41 extern gchar *CUSTOM_ACTION_ENUM_TEXT[CUSTOM_ACTION_ENUM_COUNT];
42 extern gchar *CUSTOM_KEY_GCONF[CUSTOM_KEY_ENUM_COUNT];
43 extern gchar *CUSTOM_KEY_ICON[CUSTOM_KEY_ENUM_COUNT];
44 extern CustomAction CUSTOM_KEY_DEFAULT[CUSTOM_KEY_ENUM_COUNT];
45 extern gchar *COLORABLE_GCONF[COLORABLE_ENUM_COUNT];
46 extern GdkColor COLORABLE_DEFAULT[COLORABLE_ENUM_COUNT];
47 extern CoordFormatSetup DEG_FORMAT_ENUM_TEXT[DEG_FORMAT_ENUM_COUNT];
48 extern gchar *SPEED_LOCATION_ENUM_TEXT[SPEED_LOCATION_ENUM_COUNT];
49 extern gchar *GPS_RCVR_ENUM_TEXT[GPS_RCVR_ENUM_COUNT];
51 /** The main GtkContainer of the application. */
52 extern GtkWidget *_window;
54 /** The main OSSO context of the application. */
55 extern osso_context_t *_osso;
57 /** The widget that provides the visual display of the map. */
58 extern GtkWidget *_map_widget;
60 /** The backing pixmap of _map_widget. */
61 extern GdkPixmap *_map_pixmap;
63 /** The backing pixmap of _map_widget. */
64 extern GdkPixbuf *_map_pixbuf;
66 /** The context menu for the map. */
67 extern GtkMenu *_map_cmenu;
69 extern gint _map_offset_devx;
70 extern gint _map_offset_devy;
72 extern gint _map_rotate_angle;
73 extern gfloat _map_rotate_matrix[4];
74 extern gfloat _map_reverse_matrix[4];
76 extern GtkWidget *_gps_widget;
77 extern GtkWidget *_text_lat;
78 extern GtkWidget *_text_lon;
79 extern GtkWidget *_text_speed;
80 extern GtkWidget *_text_alt;
81 extern GtkWidget *_sat_panel;
82 extern GtkWidget *_text_time;
83 extern GtkWidget *_heading_panel;
87 extern const Point _point_null;
90 extern GpsSatelliteData _gps_sat[12];
91 extern gboolean _satdetails_on;
93 extern gboolean _is_first_time;
96 /** VARIABLES FOR MAINTAINING STATE OF THE CURRENT VIEW. */
98 /** The "zoom" level defines the resolution of a pixel, from 0 to MAX_ZOOM.
99 * Each pixel in the current view is exactly (1 << _zoom) "units" wide. */
100 extern gint _zoom; /* zoom level, from 0 to MAX_ZOOM. */
101 extern Point _center; /* current center location, X. */
103 extern gint _next_zoom;
104 extern Point _next_center;
105 extern gint _next_map_rotate_angle;
106 extern GdkPixbuf *_redraw_wait_icon;
107 extern GdkRectangle _redraw_wait_bounds;
109 extern gint _map_correction_unitx;
110 extern gint _map_correction_unity;
112 /** CACHED SCREEN INFORMATION THAT IS DEPENDENT ON THE CURRENT VIEW. */
113 extern gint _view_width_pixels;
114 extern gint _view_height_pixels;
115 extern gint _view_halfwidth_pixels;
116 extern gint _view_halfheight_pixels;
119 /** The current track and route. */
122 extern gint _track_index_last_saved;
124 /** THE GdkGC OBJECTS USED FOR DRAWING. */
125 extern GdkGC *_gc[COLORABLE_ENUM_COUNT];
126 extern GdkColor _color[COLORABLE_ENUM_COUNT];
129 extern GtkWidget *_connect_banner;
130 extern GtkWidget *_fix_banner;
131 extern GtkWidget *_waypoint_banner;
132 extern GtkWidget *_download_banner;
134 /** DOWNLOAD PROGRESS. */
135 extern gboolean _conic_is_connected;
136 extern GMutex *_mapdb_mutex;
137 extern GMutex *_mouse_mutex;
138 extern volatile gint _num_downloads;
139 extern gint _curr_download;
140 extern GHashTable *_mut_exists_table;
141 extern GTree *_mut_priority_tree;
142 extern GMutex *_mut_priority_mutex;
143 extern GThreadPool *_mut_thread_pool;
144 extern GThreadPool *_mrt_thread_pool;
145 extern gboolean _refresh_map_after_download;
147 /** CONFIGURATION INFORMATION. */
148 extern GpsRcvrInfo _gri;
149 extern ConnState _gps_state;
150 extern gchar *_route_dir_uri;
151 extern gchar *_track_file_uri;
152 extern CenterMode _center_mode;
153 extern gboolean _center_rotate;
154 extern gboolean _fullscreen;
155 extern gboolean _enable_gps;
156 extern gboolean _enable_tracking;
157 extern gboolean _gps_info;
158 extern gchar *_route_dl_url;
159 extern gint _route_dl_radius;
160 extern gchar *_poi_dl_url;
161 extern gint _show_paths;
162 extern gboolean _show_zoomlevel;
163 extern gboolean _show_scale;
164 extern gboolean _show_comprose;
165 extern gboolean _show_velvec;
166 extern gboolean _show_poi;
167 extern gboolean _auto_download;
168 extern gint _auto_download_precache;
169 extern gint _lead_ratio;
170 extern gboolean _lead_is_fixed;
171 extern gint _center_ratio;
172 extern gint _draw_width;
173 extern gint _rotate_sens;
174 extern gint _ac_min_speed;
175 extern RotateDir _rotate_dir;
176 extern gboolean _enable_announce;
177 extern gint _announce_notice_ratio;
178 extern gboolean _enable_voice;
179 extern GSList *_loc_list;
180 extern GtkListStore *_loc_model;
181 extern UnitType _units;
182 extern CustomAction _action[CUSTOM_KEY_ENUM_COUNT];
183 extern gint _degformat;
184 extern gboolean _speed_limit_on;
185 extern gint _speed_limit;
186 extern gboolean _speed_excess;
187 extern SpeedLocation _speed_location;
188 extern UnblankOption _unblank_option;
189 extern InfoFontSize _info_font_size;
191 extern GList *_repo_list;
192 extern RepoData *_curr_repo;
195 extern gchar *_poi_db_filename;
196 extern gchar *_poi_db_dirname;
197 extern gint _poi_zoom;
198 extern gboolean _poi_enabled;
200 /** The singleton auto-route-download data. */
201 extern AutoRouteDownloadData _autoroute_data;
204 /*********************
205 * BELOW: MENU ITEMS *
206 *********************/
208 /* Menu items for the "Route" submenu. */
209 extern GtkWidget *_menu_route_open_item;
210 extern GtkWidget *_menu_route_download_item;
211 extern GtkWidget *_menu_route_save_item;
212 extern GtkWidget *_menu_route_distnext_item;
213 extern GtkWidget *_menu_route_distlast_item;
214 extern GtkWidget *_menu_route_reset_item;
215 extern GtkWidget *_menu_route_clear_item;
217 /* Menu items for the "Track" submenu. */
218 extern GtkWidget *_menu_track_open_item;
219 extern GtkWidget *_menu_track_save_item;
220 extern GtkWidget *_menu_track_insert_break_item;
221 extern GtkWidget *_menu_track_insert_mark_item;
222 extern GtkWidget *_menu_track_distlast_item;
223 extern GtkWidget *_menu_track_distfirst_item;
224 extern GtkWidget *_menu_track_clear_item;
225 extern GtkWidget *_menu_track_enable_tracking_item;
227 /* Menu items for the "POI" submenu. */
228 extern GtkWidget *_menu_poi_item;
229 extern GtkWidget *_menu_poi_import_item;
230 extern GtkWidget *_menu_poi_download_item;
231 extern GtkWidget *_menu_poi_browse_item;
232 extern GtkWidget *_menu_poi_categories_item;
234 /* Menu items for the "Maps" submenu. */
235 extern GtkWidget *_menu_maps_submenu;
236 extern GtkWidget *_menu_layers_submenu;
237 extern GtkWidget *_menu_maps_mapman_item;
238 extern GtkWidget *_menu_maps_auto_download_item;
239 extern GtkWidget *_menu_maps_repoman_item;
240 extern GtkWidget *_menu_maps_repodown_item;
242 /* Menu items for the "View" submenu. */
243 extern GtkWidget *_menu_view_zoom_in_item;
244 extern GtkWidget *_menu_view_zoom_out_item;
246 extern GtkWidget *_menu_view_rotate_clock_item;
247 extern GtkWidget *_menu_view_rotate_counter_item;
248 extern GtkWidget *_menu_view_rotate_reset_item;
249 extern GtkWidget *_menu_view_rotate_auto_item;
251 extern GtkWidget *_menu_view_pan_up_item;
252 extern GtkWidget *_menu_view_pan_down_item;
253 extern GtkWidget *_menu_view_pan_left_item;
254 extern GtkWidget *_menu_view_pan_right_item;
255 extern GtkWidget *_menu_view_pan_north_item;
256 extern GtkWidget *_menu_view_pan_south_item;
257 extern GtkWidget *_menu_view_pan_west_item;
258 extern GtkWidget *_menu_view_pan_east_item;
260 extern GtkWidget *_menu_view_fullscreen_item;
262 extern GtkWidget *_menu_view_show_zoomlevel_item;
263 extern GtkWidget *_menu_view_show_scale_item;
264 extern GtkWidget *_menu_view_show_comprose_item;
265 extern GtkWidget *_menu_view_show_routes_item;
266 extern GtkWidget *_menu_view_show_tracks_item;
267 extern GtkWidget *_menu_view_show_velvec_item;
268 extern GtkWidget *_menu_view_show_poi_item;
270 extern GtkWidget *_menu_view_ac_latlon_item;
271 extern GtkWidget *_menu_view_ac_lead_item;
272 extern GtkWidget *_menu_view_ac_none_item;
274 extern GtkWidget *_menu_view_goto_latlon_item;
275 extern GtkWidget *_menu_view_goto_address_item;
276 extern GtkWidget *_menu_view_goto_gps_item;
277 extern GtkWidget *_menu_view_goto_nextway_item;
278 extern GtkWidget *_menu_view_goto_nearpoi_item;
280 /* Menu items for the "GPS" submenu. */
281 extern GtkWidget *_menu_gps_enable_item;
282 extern GtkWidget *_menu_gps_show_info_item;
283 extern GtkWidget *_menu_gps_details_item;
284 extern GtkWidget *_menu_gps_reset_item;
286 /* Menu items for the other menu items. */
287 extern GtkWidget *_menu_settings_item;
288 extern GtkWidget *_menu_help_item;
289 extern GtkWidget *_menu_about_item;
290 extern GtkWidget *_menu_close_item;
292 /*********************
293 * ABOVE: MENU ITEMS *
294 *********************/
297 /*****************************
298 * BELOW: CONTEXT MENU ITEMS *
299 *****************************/
301 extern gboolean _mouse_is_dragging;
302 extern gboolean _mouse_is_down;
303 extern gint _cmenu_position_x;
304 extern gint _cmenu_position_y;
306 /* Menu items for the "Location" context menu. */
307 extern GtkWidget *_cmenu_loc_show_latlon_item;
308 extern GtkWidget *_cmenu_loc_route_to_item;
309 extern GtkWidget *_cmenu_loc_distance_to_item;
310 extern GtkWidget *_cmenu_loc_download_poi_item;
311 extern GtkWidget *_cmenu_loc_browse_poi_item;
312 extern GtkWidget *_cmenu_loc_add_route_item;
313 extern GtkWidget *_cmenu_loc_add_way_item;
314 extern GtkWidget *_cmenu_loc_add_poi_item;
315 extern GtkWidget *_cmenu_loc_set_gps_item;
316 extern GtkWidget *_cmenu_loc_apply_correction_item;
318 /* Menu items for the "Waypoint" context menu. */
319 extern GtkWidget *_cmenu_way_show_latlon_item;
320 extern GtkWidget *_cmenu_way_show_desc_item;
321 extern GtkWidget *_cmenu_way_clip_latlon_item;
322 extern GtkWidget *_cmenu_way_clip_desc_item;
323 extern GtkWidget *_cmenu_way_route_to_item;
324 extern GtkWidget *_cmenu_way_distance_to_item;
325 extern GtkWidget *_cmenu_way_delete_item;
326 extern GtkWidget *_cmenu_way_add_poi_item;
327 extern GtkWidget *_cmenu_way_goto_nextway_item;
329 /* Menu items for the "POI" context menu. */
330 extern GtkWidget *_cmenu_poi_submenu;
331 extern GtkWidget *_cmenu_poi_edit_poi_item;
332 extern GtkWidget *_cmenu_poi_route_to_item;
333 extern GtkWidget *_cmenu_poi_distance_to_item;
334 extern GtkWidget *_cmenu_poi_add_route_item;
335 extern GtkWidget *_cmenu_poi_add_way_item;
336 extern GtkWidget *_cmenu_poi_goto_nearpoi_item;
338 /*****************************
339 * ABOVE: CONTEXT MENU ITEMS *
340 *****************************/
344 extern gboolean _aprs_enable;
345 extern gboolean _aprs_inet_enable;
346 extern gboolean _aprs_tty_enable;
347 extern gchar * _aprs_server;
348 extern gchar * _aprs_tty_port;
349 extern guint _aprs_server_port;
350 extern gint _aprs_std_pos_hist;
351 extern gint _aprs_max_stations;
352 extern gchar * _aprs_inet_server_validation;
353 extern gchar * _aprs_beacon_comment;
354 extern gboolean _aprs_transmit_compressed_posit;
355 extern gint _aprs_inet_beacon_interval;
356 extern gint _aprs_tty_beacon_interval;
357 extern gchar * _aprs_inet_beacon_comment;
358 extern gchar _aprs_beacon_group;
359 extern gchar _aprs_beacon_symbol;
361 extern gboolean _aprs_enable_inet_tx;
362 extern gboolean _aprs_enable_tty_tx;
363 extern gchar * _aprs_mycall;
364 extern gchar * _aprs_beacon_comment;
366 extern gboolean _aprs_show_new_station_alert;
367 extern time_t _aprs_sec_remove;
368 extern GtkWidget *_menu_enable_aprs_inet_item;
369 extern GtkWidget *_menu_enable_aprs_tty_item;
370 extern GtkWidget *_menu_list_aprs_stations_item;
371 extern GtkWidget *_menu_list_aprs_messages_item;
372 extern GtkWidget *_menu_aprs_settings_item;
373 extern ConnState _aprs_inet_state;
374 extern ConnState _aprs_tty_state;
375 extern gchar * _aprs_tnc_bt_mac;
376 extern TTncConnection _aprs_tnc_method;
377 extern gint _aprs_server_auto_filter_km;
378 extern gboolean _aprs_server_auto_filter_on;
379 //extern GtkWidget *_aprs_connect_banner;
380 extern gchar * _aprs_unproto_path;
382 #endif // INCLUDE_APRS
384 #endif /* ifndef MAEMO_MAPPER_DATA_H */