/*
* Copyright (C) 2006, 2007 John Costigan.
*
* POI and GPS-Info code originally written by Cezary Jackiewicz.
*
* Default map data provided by http://www.openstreetmap.org/
*
* This file is part of Maemo Mapper.
*
* Maemo Mapper is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Maemo Mapper is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Maemo Mapper. If not, see .
*/
#ifndef MAEMO_MAPPER_DATA_H
#define MAEMO_MAPPER_DATA_H
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include
#include "types.h"
/* Constants regarding enums and defaults. */
extern gchar *UNITS_ENUM_TEXT[UNITS_ENUM_COUNT];
extern gdouble UNITS_CONVERT[UNITS_ENUM_COUNT];
extern gchar *UNBLANK_ENUM_TEXT[UNBLANK_ENUM_COUNT];
extern gchar *INFO_FONT_ENUM_TEXT[INFO_FONT_ENUM_COUNT];
extern gchar *ROTATE_DIR_ENUM_TEXT[ROTATE_DIR_ENUM_COUNT];
extern gint ROTATE_DIR_ENUM_DEGREES[ROTATE_DIR_ENUM_COUNT];
extern gchar *CUSTOM_ACTION_ENUM_TEXT[CUSTOM_ACTION_ENUM_COUNT];
extern gchar *CUSTOM_KEY_GCONF[CUSTOM_KEY_ENUM_COUNT];
extern gchar *CUSTOM_KEY_ICON[CUSTOM_KEY_ENUM_COUNT];
extern CustomAction CUSTOM_KEY_DEFAULT[CUSTOM_KEY_ENUM_COUNT];
extern gchar *COLORABLE_GCONF[COLORABLE_ENUM_COUNT];
extern GdkColor COLORABLE_DEFAULT[COLORABLE_ENUM_COUNT];
extern CoordFormatSetup DEG_FORMAT_ENUM_TEXT[DEG_FORMAT_ENUM_COUNT];
extern gchar *SPEED_LOCATION_ENUM_TEXT[SPEED_LOCATION_ENUM_COUNT];
extern gchar *GPS_RCVR_ENUM_TEXT[GPS_RCVR_ENUM_COUNT];
/** The main GtkContainer of the application. */
extern GtkWidget *_window;
/** The main OSSO context of the application. */
extern osso_context_t *_osso;
/** The widget that provides the visual display of the map. */
extern GtkWidget *_map_widget;
/** The backing pixmap of _map_widget. */
extern GdkPixmap *_map_pixmap;
/** The backing pixmap of _map_widget. */
extern GdkPixbuf *_map_pixbuf;
/** The context menu for the map. */
extern GtkMenu *_map_cmenu;
extern gint _map_offset_devx;
extern gint _map_offset_devy;
extern gint _map_rotate_angle;
extern gfloat _map_rotate_matrix[4];
extern gfloat _map_reverse_matrix[4];
extern GtkWidget *_gps_widget;
extern GtkWidget *_text_lat;
extern GtkWidget *_text_lon;
extern GtkWidget *_text_speed;
extern GtkWidget *_text_alt;
extern GtkWidget *_sat_panel;
extern GtkWidget *_text_time;
extern GtkWidget *_heading_panel;
/** GPS data. */
extern Point _pos;
extern const Point _point_null;
extern GpsData _gps;
extern GpsSatelliteData _gps_sat[12];
extern gboolean _satdetails_on;
extern gboolean _is_first_time;
/** VARIABLES FOR MAINTAINING STATE OF THE CURRENT VIEW. */
/** The "zoom" level defines the resolution of a pixel, from 0 to MAX_ZOOM.
* Each pixel in the current view is exactly (1 << _zoom) "units" wide. */
extern gint _zoom; /* zoom level, from 0 to MAX_ZOOM. */
extern Point _center; /* current center location, X. */
extern gint _next_zoom;
extern Point _next_center;
extern gint _next_map_rotate_angle;
extern GdkPixbuf *_redraw_wait_icon;
extern GdkRectangle _redraw_wait_bounds;
extern gint _map_correction_unitx;
extern gint _map_correction_unity;
/** CACHED SCREEN INFORMATION THAT IS DEPENDENT ON THE CURRENT VIEW. */
extern gint _view_width_pixels;
extern gint _view_height_pixels;
extern gint _view_halfwidth_pixels;
extern gint _view_halfheight_pixels;
/** The current track and route. */
extern Path _track;
extern Path _route;
extern gint _track_index_last_saved;
/** THE GdkGC OBJECTS USED FOR DRAWING. */
extern GdkGC *_gc[COLORABLE_ENUM_COUNT];
extern GdkColor _color[COLORABLE_ENUM_COUNT];
/** BANNERS. */
extern GtkWidget *_connect_banner;
extern GtkWidget *_fix_banner;
extern GtkWidget *_waypoint_banner;
extern GtkWidget *_download_banner;
/** DOWNLOAD PROGRESS. */
extern gboolean _conic_is_connected;
extern GMutex *_mapdb_mutex;
extern GMutex *_mouse_mutex;
extern volatile gint _num_downloads;
extern gint _curr_download;
extern GHashTable *_mut_exists_table;
extern GTree *_mut_priority_tree;
extern GMutex *_mut_priority_mutex;
extern GThreadPool *_mut_thread_pool;
extern GThreadPool *_mrt_thread_pool;
extern gboolean _refresh_map_after_download;
/** CONFIGURATION INFORMATION. */
extern GpsRcvrInfo _gri;
extern ConnState _gps_state;
extern gchar *_route_dir_uri;
extern gchar *_track_file_uri;
extern CenterMode _center_mode;
extern gboolean _center_rotate;
extern gboolean _fullscreen;
extern gboolean _enable_gps;
extern gboolean _enable_tracking;
extern gboolean _gps_info;
extern gchar *_route_dl_url;
extern gint _route_dl_radius;
extern gchar *_poi_dl_url;
extern gint _show_paths;
extern gboolean _show_zoomlevel;
extern gboolean _show_scale;
extern gboolean _show_comprose;
extern gboolean _show_velvec;
extern gboolean _show_poi;
extern gboolean _auto_download;
extern gint _auto_download_precache;
extern gint _lead_ratio;
extern gboolean _lead_is_fixed;
extern gint _center_ratio;
extern gint _draw_width;
extern gint _rotate_sens;
extern gint _ac_min_speed;
extern RotateDir _rotate_dir;
extern gboolean _enable_announce;
extern gint _announce_notice_ratio;
extern gboolean _enable_voice;
extern GSList *_loc_list;
extern GtkListStore *_loc_model;
extern UnitType _units;
extern CustomAction _action[CUSTOM_KEY_ENUM_COUNT];
extern gint _degformat;
extern gboolean _speed_limit_on;
extern gint _speed_limit;
extern gboolean _speed_excess;
extern SpeedLocation _speed_location;
extern UnblankOption _unblank_option;
extern InfoFontSize _info_font_size;
extern GList *_repo_list;
extern RepoData *_curr_repo;
/** POI */
extern gchar *_poi_db_filename;
extern gchar *_poi_db_dirname;
extern gint _poi_zoom;
extern gboolean _poi_enabled;
/** The singleton auto-route-download data. */
extern AutoRouteDownloadData _autoroute_data;
/*********************
* BELOW: MENU ITEMS *
*********************/
/* Menu items for the "Route" submenu. */
extern GtkWidget *_menu_route_open_item;
extern GtkWidget *_menu_route_download_item;
extern GtkWidget *_menu_route_save_item;
extern GtkWidget *_menu_route_distnext_item;
extern GtkWidget *_menu_route_distlast_item;
extern GtkWidget *_menu_route_reset_item;
extern GtkWidget *_menu_route_clear_item;
/* Menu items for the "Track" submenu. */
extern GtkWidget *_menu_track_open_item;
extern GtkWidget *_menu_track_save_item;
extern GtkWidget *_menu_track_insert_break_item;
extern GtkWidget *_menu_track_insert_mark_item;
extern GtkWidget *_menu_track_distlast_item;
extern GtkWidget *_menu_track_distfirst_item;
extern GtkWidget *_menu_track_clear_item;
extern GtkWidget *_menu_track_enable_tracking_item;
/* Menu items for the "POI" submenu. */
extern GtkWidget *_menu_poi_item;
extern GtkWidget *_menu_poi_import_item;
extern GtkWidget *_menu_poi_download_item;
extern GtkWidget *_menu_poi_browse_item;
extern GtkWidget *_menu_poi_categories_item;
/* Menu items for the "Maps" submenu. */
extern GtkWidget *_menu_maps_submenu;
extern GtkWidget *_menu_layers_submenu;
extern GtkWidget *_menu_maps_mapman_item;
extern GtkWidget *_menu_maps_auto_download_item;
extern GtkWidget *_menu_maps_repoman_item;
extern GtkWidget *_menu_maps_repodown_item;
/* Menu items for the "View" submenu. */
extern GtkWidget *_menu_view_zoom_in_item;
extern GtkWidget *_menu_view_zoom_out_item;
extern GtkWidget *_menu_view_rotate_clock_item;
extern GtkWidget *_menu_view_rotate_counter_item;
extern GtkWidget *_menu_view_rotate_reset_item;
extern GtkWidget *_menu_view_rotate_auto_item;
extern GtkWidget *_menu_view_pan_up_item;
extern GtkWidget *_menu_view_pan_down_item;
extern GtkWidget *_menu_view_pan_left_item;
extern GtkWidget *_menu_view_pan_right_item;
extern GtkWidget *_menu_view_pan_north_item;
extern GtkWidget *_menu_view_pan_south_item;
extern GtkWidget *_menu_view_pan_west_item;
extern GtkWidget *_menu_view_pan_east_item;
extern GtkWidget *_menu_view_fullscreen_item;
extern GtkWidget *_menu_view_show_zoomlevel_item;
extern GtkWidget *_menu_view_show_scale_item;
extern GtkWidget *_menu_view_show_comprose_item;
extern GtkWidget *_menu_view_show_routes_item;
extern GtkWidget *_menu_view_show_tracks_item;
extern GtkWidget *_menu_view_show_velvec_item;
extern GtkWidget *_menu_view_show_poi_item;
extern GtkWidget *_menu_view_ac_latlon_item;
extern GtkWidget *_menu_view_ac_lead_item;
extern GtkWidget *_menu_view_ac_none_item;
extern GtkWidget *_menu_view_goto_latlon_item;
extern GtkWidget *_menu_view_goto_address_item;
extern GtkWidget *_menu_view_goto_gps_item;
extern GtkWidget *_menu_view_goto_nextway_item;
extern GtkWidget *_menu_view_goto_nearpoi_item;
/* Menu items for the "GPS" submenu. */
extern GtkWidget *_menu_gps_enable_item;
extern GtkWidget *_menu_gps_show_info_item;
extern GtkWidget *_menu_gps_details_item;
extern GtkWidget *_menu_gps_reset_item;
/* Menu items for the other menu items. */
extern GtkWidget *_menu_settings_item;
extern GtkWidget *_menu_help_item;
extern GtkWidget *_menu_about_item;
extern GtkWidget *_menu_close_item;
/*********************
* ABOVE: MENU ITEMS *
*********************/
/*****************************
* BELOW: CONTEXT MENU ITEMS *
*****************************/
extern gboolean _mouse_is_dragging;
extern gboolean _mouse_is_down;
extern gint _cmenu_position_x;
extern gint _cmenu_position_y;
/* Menu items for the "Location" context menu. */
extern GtkWidget *_cmenu_loc_show_latlon_item;
extern GtkWidget *_cmenu_loc_route_to_item;
extern GtkWidget *_cmenu_loc_distance_to_item;
extern GtkWidget *_cmenu_loc_download_poi_item;
extern GtkWidget *_cmenu_loc_browse_poi_item;
extern GtkWidget *_cmenu_loc_add_route_item;
extern GtkWidget *_cmenu_loc_add_way_item;
extern GtkWidget *_cmenu_loc_add_poi_item;
extern GtkWidget *_cmenu_loc_set_gps_item;
extern GtkWidget *_cmenu_loc_apply_correction_item;
/* Menu items for the "Waypoint" context menu. */
extern GtkWidget *_cmenu_way_show_latlon_item;
extern GtkWidget *_cmenu_way_show_desc_item;
extern GtkWidget *_cmenu_way_clip_latlon_item;
extern GtkWidget *_cmenu_way_clip_desc_item;
extern GtkWidget *_cmenu_way_route_to_item;
extern GtkWidget *_cmenu_way_distance_to_item;
extern GtkWidget *_cmenu_way_delete_item;
extern GtkWidget *_cmenu_way_add_poi_item;
extern GtkWidget *_cmenu_way_goto_nextway_item;
/* Menu items for the "POI" context menu. */
extern GtkWidget *_cmenu_poi_submenu;
extern GtkWidget *_cmenu_poi_edit_poi_item;
extern GtkWidget *_cmenu_poi_route_to_item;
extern GtkWidget *_cmenu_poi_distance_to_item;
extern GtkWidget *_cmenu_poi_add_route_item;
extern GtkWidget *_cmenu_poi_add_way_item;
extern GtkWidget *_cmenu_poi_goto_nearpoi_item;
/*****************************
* ABOVE: CONTEXT MENU ITEMS *
*****************************/
#ifdef INCLUDE_APRS
extern gboolean _aprs_enable;
extern gboolean _aprs_inet_enable;
extern gboolean _aprs_tty_enable;
extern gchar * _aprs_server;
extern gchar * _aprs_tty_port;
extern guint _aprs_server_port;
extern gint _aprs_std_pos_hist;
extern gint _aprs_max_stations;
extern gchar * _aprs_inet_server_validation;
extern gchar * _aprs_beacon_comment;
extern gboolean _aprs_transmit_compressed_posit;
extern gint _aprs_inet_beacon_interval;
extern gint _aprs_tty_beacon_interval;
extern gchar * _aprs_inet_beacon_comment;
extern gchar _aprs_beacon_group;
extern gchar _aprs_beacon_symbol;
extern gboolean _aprs_enable_inet_tx;
extern gboolean _aprs_enable_tty_tx;
extern gchar * _aprs_mycall;
extern gchar * _aprs_beacon_comment;
extern gboolean _aprs_show_new_station_alert;
extern time_t _aprs_sec_remove;
extern GtkWidget *_menu_enable_aprs_inet_item;
extern GtkWidget *_menu_enable_aprs_tty_item;
extern GtkWidget *_menu_list_aprs_stations_item;
extern GtkWidget *_menu_list_aprs_messages_item;
extern GtkWidget *_menu_aprs_settings_item;
extern ConnState _aprs_inet_state;
extern ConnState _aprs_tty_state;
extern gchar * _aprs_tnc_bt_mac;
extern TTncConnection _aprs_tnc_method;
extern gint _aprs_server_auto_filter_km;
extern gboolean _aprs_server_auto_filter_on;
//extern GtkWidget *_aprs_connect_banner;
extern gchar * _aprs_unproto_path;
#endif // INCLUDE_APRS
#endif /* ifndef MAEMO_MAPPER_DATA_H */