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