]> err.no Git - mapper/blob - src/ui-common.h
4a0b55df98dd034a9db0286c2422a2a427387f23
[mapper] / src / ui-common.h
1 #ifndef _MAPPER_UI_COMMON_H
2 #define _MAPPER_UI_COMMON_H
3
4 #include "config.h"
5
6 #include <unistd.h>
7 #include <stdlib.h>
8 #include <string.h>
9 #include <strings.h>
10 #include <stddef.h>
11 #include <locale.h>
12 #include <math.h>
13 #include <errno.h>
14 #include <sys/wait.h>
15 #include <glib/gstdio.h>
16 #include <gtk/gtk.h>
17 #include <fcntl.h>
18
19 #include "gps.h"
20 #include "mapper-types.h"
21 #include "ui-maemo.h"
22 #include "hildon-wrappers.h"
23 #include "path.h"
24
25 #define SCALE_WIDTH (200)
26
27 /** The main GtkContainer of the application. */
28 GtkWidget *_window;
29 GtkWidget *_gps_widget;
30 GtkWidget *_map;
31 GtkWidget *_toolbar;
32
33 /* GPS Tab widget */
34 GtkWidget *_gps_sat_view;
35
36 /* Heading Tab widget */
37 GtkWidget *_tab_compass;
38
39 /* Panel widgets */
40 GtkWidget *_gps_compass;
41 GtkWidget *_gps_signal;
42
43 GtkWidget *_sdi_lat;
44 GtkWidget *_sdi_lon;
45 GtkWidget *_sdi_spd;
46 GtkWidget *_sdi_alt;
47 GtkWidget *_sdi_hea;
48 GtkWidget *_sdi_tim;
49 GtkWidget *_sdi_vie;
50 GtkWidget *_sdi_use;
51 GtkWidget *_sdi_fix;
52 GtkWidget *_sdi_fqu;
53 GtkWidget *_sdi_msp;
54
55 /** Pango stuff. */
56 PangoContext *_sat_panel_context;
57 PangoLayout *_sat_panel_layout;
58 PangoFontDescription *_sat_panel_fontdesc;
59 GdkGC *_sat_info_gc1;
60 GdkGC *_sat_info_gc2;
61 PangoContext *_sat_info_context;
62 PangoLayout *_sat_info_layout;
63 PangoFontDescription *_sat_info_fontdesc;
64
65 /** THE GdkGC OBJECTS USED FOR DRAWING. */
66 GdkGC *_gc[COLORABLE_ENUM_COUNT];
67 GdkColor _color[COLORABLE_ENUM_COUNT];
68
69 /* Toolbar items */
70 GtkProgressBar *_progress_item;
71
72 /* Menu items for the "Location" context menu. */
73 GtkWidget *_cmenu_loc_show_latlon_item;
74 GtkWidget *_cmenu_loc_clip_latlon_item;
75 GtkWidget *_cmenu_loc_route_to_item;
76 GtkWidget *_cmenu_loc_distance_to_item;
77 GtkWidget *_cmenu_loc_add_route;
78 GtkWidget *_cmenu_loc_add_way;
79 GtkWidget *_cmenu_loc_set_gps;
80 GtkWidget *_cmenu_loc_set_destination;
81 GtkWidget *_cmenu_loc_set_home;
82
83 /* Menu items for the "Waypoint" context menu. */
84 GtkWidget *_cmenu_way_show_latlon_item;
85 GtkWidget *_cmenu_way_show_desc_item;
86 GtkWidget *_cmenu_way_clip_latlon_item;
87 GtkWidget *_cmenu_way_clip_desc_item;
88 GtkWidget *_cmenu_way_route_to_item;
89 GtkWidget *_cmenu_way_distance_to_item;
90 GtkWidget *_cmenu_way_delete_item;
91 GtkWidget *_cmenu_way_add_poi;
92 GtkWidget *_cmenu_way_goto_nextway;
93
94 /* Menu items for the "POI" context menu. */
95 GtkWidget *_cmenu_poi;
96 GtkWidget *_cmenu_poi_edit_poi;
97 GtkWidget *_cmenu_poi_route_to_item;
98 GtkWidget *_cmenu_poi_distance_to_item;
99 GtkWidget *_cmenu_loc_add_poi;
100 GtkWidget *_cmenu_poi_add_route;
101 GtkWidget *_cmenu_poi_add_way;
102 GtkWidget *_cmenu_poi_goto_nearpoi;
103
104 /* Banners/Progress bars */
105 GtkWidget *_status_bar;
106
107 struct _info_banner {
108         GtkWidget *container;
109         GtkWidget *location;
110         GtkWidget *speed;
111         GtkWidget *distance;
112 };
113 struct _info_banner info_banner;
114
115 gint _show_tracks;
116 gboolean _show_scale;
117 gboolean _show_velvec;
118 gboolean _show_poi;
119
120 GtkMenu *_menu_map;
121
122 GtkWidget *route_tree_view;
123 GtkWidget *track_tree_view;
124
125 Path *_route;
126 Path *_track;
127
128 AutoRouteDownloadData _autoroute_data;
129
130 void mapper_ui_init(void);
131 gboolean window_present();
132
133 void set_action_sensitive(const char *name, gboolean sensitive);
134 void set_action_activate(const char *name, gboolean active);
135
136 /* XXX: Not the right place but.. */
137 gboolean gps_info_update(Gps *gps);
138 gboolean gps_location_update(Gps *gps);
139 gboolean gps_retry_connection(Gps *gps, const gchar *error);
140
141 #endif