1 |
/* |
/* |
2 |
|
* Copyright (C) 2008 Till Harbaum <till@harbaum.org>. |
3 |
|
* |
4 |
* This file is part of OSM2Go. |
* This file is part of OSM2Go. |
5 |
* |
* |
6 |
* OSM2Go is free software: you can redistribute it and/or modify |
* OSM2Go is free software: you can redistribute it and/or modify |
75 |
/******************** begin of menu *********************/ |
/******************** begin of menu *********************/ |
76 |
|
|
77 |
static void |
static void |
78 |
cb_menu_project_open(GtkWidget *window, gpointer data) { |
cb_menu_project_open(GtkMenuItem *item, gpointer data) { |
79 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
80 |
project_load(appdata, NULL); |
project_load(appdata, NULL); |
81 |
main_ui_enable(appdata); |
main_ui_enable(appdata); |
82 |
} |
} |
83 |
|
|
84 |
static void |
static void |
85 |
cb_menu_project_close(GtkWidget *window, gpointer data) { |
cb_menu_project_close(GtkMenuItem *item, gpointer data) { |
86 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
87 |
project_close(appdata); |
project_close(appdata); |
88 |
main_ui_enable(appdata); |
main_ui_enable(appdata); |
89 |
} |
} |
90 |
|
|
91 |
static void |
static void |
92 |
cb_menu_about(GtkWidget *window, gpointer data) { |
cb_menu_about(GtkMenuItem *item, gpointer data) { |
93 |
GtkAboutDialog *about = GTK_ABOUT_DIALOG(gtk_about_dialog_new()); |
appdata_t *appdata = (appdata_t*)data; |
|
|
|
|
gtk_about_dialog_set_name(about, "OSM2Go"); |
|
|
gtk_about_dialog_set_version(about, VERSION); |
|
|
gtk_about_dialog_set_copyright(about, _("Copyright 2008")); |
|
94 |
|
|
95 |
const gchar *authors[] = { |
const gchar *authors[] = { |
96 |
"Till Harbaum <till@harbaum.org>", |
"Till Harbaum <till@harbaum.org>", |
97 |
"Andrew Chadwick <andrewc-osm2go@piffle.org>", |
"Andrew Chadwick <andrewc-osm2go@piffle.org>", |
98 |
NULL }; |
NULL }; |
99 |
|
|
100 |
gtk_about_dialog_set_authors(about, authors); |
const gchar *artists[] = { |
101 |
|
#ifdef USE_HILDON |
102 |
gtk_about_dialog_set_website(about, |
/* cyrillic doesn't seem to work on hildon */ |
103 |
_("http://www.harbaum.org/till/maemo")); |
"Andrew Zhilin <drew.zhilin@gmail.com>", |
104 |
|
#else |
105 |
gtk_about_dialog_set_comments(about, |
"Андрей Жилин <drew.zhilin@gmail.com>", |
106 |
_("Mobile OSM Editor")); |
#endif |
107 |
|
NULL }; |
108 |
|
|
109 |
gtk_widget_show_all(GTK_WIDGET(about)); |
gtk_show_about_dialog(GTK_WINDOW(appdata->window), |
110 |
gtk_dialog_run(GTK_DIALOG(about)); |
"name", "OSM2Go", |
111 |
gtk_widget_destroy(GTK_WIDGET(about)); |
"version", VERSION, |
112 |
|
"copyright", _("Copyright 2008-2009"), |
113 |
|
"authors", authors, |
114 |
|
"artists", artists, |
115 |
|
"website", _("http://www.harbaum.org/till/maemo"), |
116 |
|
"comments", _("Mobile OSM Editor"), |
117 |
|
NULL); |
118 |
} |
} |
119 |
|
|
120 |
void on_window_destroy (GtkWidget *widget, gpointer data); |
void on_window_destroy (GtkWidget *widget, gpointer data); |
121 |
|
|
122 |
static void |
static void |
123 |
cb_menu_quit(GtkWidget *window, gpointer data) { |
cb_menu_quit(GtkMenuItem *item, gpointer data) { |
124 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
125 |
gtk_widget_destroy(GTK_WIDGET(appdata->window)); |
gtk_widget_destroy(GTK_WIDGET(appdata->window)); |
126 |
} |
} |
127 |
|
|
128 |
static void |
static void |
129 |
cb_menu_upload(GtkWidget *window, gpointer data) { |
cb_menu_upload(GtkMenuItem *item, gpointer data) { |
130 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
131 |
if(!appdata->osm || !appdata->project) return; |
if(!appdata->osm || !appdata->project) return; |
132 |
|
|
134 |
} |
} |
135 |
|
|
136 |
static void |
static void |
137 |
cb_menu_download(GtkWidget *window, gpointer data) { |
cb_menu_download(GtkMenuItem *item, gpointer data) { |
138 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
139 |
if(!appdata->project) return; |
if(!appdata->project) return; |
140 |
|
|
161 |
} |
} |
162 |
|
|
163 |
static void |
static void |
164 |
cb_menu_wms_import(GtkWidget *window, gpointer data) { |
cb_menu_wms_import(GtkMenuItem *item, gpointer data) { |
165 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
166 |
wms_import(appdata); |
wms_import(appdata); |
167 |
} |
} |
168 |
|
|
169 |
static void |
static void |
170 |
cb_menu_wms_clear(GtkWidget *window, gpointer data) { |
cb_menu_wms_clear(GtkMenuItem *item, gpointer data) { |
171 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
172 |
wms_remove(appdata); |
wms_remove(appdata); |
173 |
} |
} |
174 |
|
|
175 |
static void |
static void |
176 |
cb_menu_wms_adjust(GtkWidget *window, gpointer data) { |
cb_menu_wms_adjust(GtkMenuItem *item, gpointer data) { |
177 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
178 |
map_action_set(appdata, MAP_ACTION_BG_ADJUST); |
map_action_set(appdata, MAP_ACTION_BG_ADJUST); |
179 |
} |
} |
181 |
/* ----------- hide objects for performance reasons ----------- */ |
/* ----------- hide objects for performance reasons ----------- */ |
182 |
|
|
183 |
static void |
static void |
184 |
cb_menu_map_hide_sel(GtkWidget *window, gpointer data) { |
cb_menu_map_hide_sel(GtkMenuItem *item, gpointer data) { |
185 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
186 |
map_hide_selected(appdata); |
map_hide_selected(appdata); |
187 |
} |
} |
188 |
|
|
189 |
static void |
static void |
190 |
cb_menu_map_show_all(GtkWidget *window, gpointer data) { |
cb_menu_map_show_all(GtkMenuItem *item, gpointer data) { |
191 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
192 |
map_show_all(appdata); |
map_show_all(appdata); |
193 |
} |
} |
196 |
|
|
197 |
#if 1 // mainly for testing |
#if 1 // mainly for testing |
198 |
static void |
static void |
199 |
cb_menu_redraw(GtkWidget *window, gpointer data) { |
cb_menu_redraw(GtkMenuItem *item, gpointer data) { |
200 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
201 |
|
|
202 |
/* redraw the entire map by destroying all map items and redrawing them */ |
/* redraw the entire map by destroying all map items and redrawing them */ |
220 |
#endif |
#endif |
221 |
|
|
222 |
static void |
static void |
223 |
cb_menu_style(GtkWidget *widget, gpointer data) { |
cb_menu_style(GtkMenuItem *item, gpointer data) { |
224 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
225 |
|
|
226 |
style_select(GTK_WIDGET(appdata->window), appdata); |
style_select(GTK_WIDGET(appdata->window), appdata); |
227 |
} |
} |
228 |
|
|
229 |
static void |
static void |
230 |
cb_menu_map_no_icons(GtkWidget *widget, gpointer data) { |
cb_menu_map_no_icons(GtkCheckMenuItem *item, gpointer data) { |
231 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
232 |
|
|
233 |
banner_busy_start(appdata, 1, "Redrawing..."); |
banner_busy_start(appdata, 1, "Redrawing..."); |
234 |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
235 |
appdata->settings->no_icons = |
appdata->settings->no_icons = gtk_check_menu_item_get_active(item); |
|
gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)); |
|
236 |
map_paint(appdata); |
map_paint(appdata); |
237 |
banner_busy_stop(appdata); //"Redrawing..." |
banner_busy_stop(appdata); //"Redrawing..." |
238 |
} |
} |
239 |
|
|
240 |
static void |
static void |
241 |
cb_menu_map_no_antialias(GtkWidget *widget, gpointer data) { |
cb_menu_map_no_antialias(GtkCheckMenuItem *item, gpointer data) { |
242 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
243 |
|
|
244 |
banner_busy_start(appdata, 1, "Redrawing..."); |
banner_busy_start(appdata, 1, "Redrawing..."); |
245 |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
map_clear(appdata, MAP_LAYER_OBJECTS_ONLY); |
246 |
appdata->settings->no_antialias = |
appdata->settings->no_antialias = gtk_check_menu_item_get_active(item); |
|
gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)); |
|
247 |
map_paint(appdata); |
map_paint(appdata); |
248 |
banner_busy_stop(appdata); //"Redrawing..." |
banner_busy_stop(appdata); //"Redrawing..." |
249 |
} |
} |
250 |
|
|
251 |
static void |
static void |
252 |
cb_menu_undo(GtkWidget *widget, gpointer data) { |
cb_menu_undo(GtkMenuItem *item, gpointer data) { |
253 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
254 |
|
|
255 |
undo(appdata); |
undo(appdata); |
258 |
} |
} |
259 |
|
|
260 |
static void |
static void |
261 |
cb_menu_save_changes(GtkWidget *widget, gpointer data) { |
cb_menu_save_changes(GtkMenuItem *item, gpointer data) { |
262 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
263 |
|
|
264 |
diff_save(appdata->project, appdata->osm); |
diff_save(appdata->project, appdata->osm); |
266 |
} |
} |
267 |
|
|
268 |
static void |
static void |
269 |
cb_menu_undo_changes(GtkWidget *widget, gpointer data) { |
cb_menu_undo_changes(GtkMenuItem *item, gpointer data) { |
270 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
271 |
|
|
272 |
if(!yes_no_f(GTK_WIDGET(appdata->window), NULL, 0, 0, |
if(!yes_no_f(GTK_WIDGET(appdata->window), NULL, 0, 0, |
287 |
} |
} |
288 |
|
|
289 |
static void |
static void |
290 |
cb_menu_osm_relations(GtkWidget *widget, gpointer data) { |
cb_menu_osm_relations(GtkMenuItem *item, gpointer data) { |
291 |
relation_list((appdata_t*)data); |
relation_list((appdata_t*)data); |
292 |
} |
} |
293 |
|
|
294 |
static void |
static void |
295 |
cb_menu_fullscreen(GtkWidget *widget, gpointer data) { |
cb_menu_fullscreen(GtkCheckMenuItem *item, gpointer data) { |
296 |
appdata_t *appdata = (appdata_t *)data; |
appdata_t *appdata = (appdata_t *)data; |
297 |
|
|
298 |
if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) |
if(gtk_check_menu_item_get_active(item)) |
299 |
gtk_window_fullscreen(GTK_WINDOW(appdata->window)); |
gtk_window_fullscreen(GTK_WINDOW(appdata->window)); |
300 |
else |
else |
301 |
gtk_window_unfullscreen(GTK_WINDOW(appdata->window)); |
gtk_window_unfullscreen(GTK_WINDOW(appdata->window)); |
302 |
} |
} |
303 |
|
|
304 |
static void |
static void |
305 |
cb_menu_zoomin(GtkWidget *widget, appdata_t *appdata) { |
cb_menu_zoomin(GtkMenuItem *item, appdata_t *appdata) { |
306 |
if(!appdata || !appdata->map) return; |
if(!appdata || !appdata->map) return; |
307 |
|
|
308 |
map_set_zoom(appdata->map, appdata->map->state->zoom*ZOOM_FACTOR_MENU, TRUE); |
map_set_zoom(appdata->map, appdata->map->state->zoom*ZOOM_FACTOR_MENU, TRUE); |
310 |
} |
} |
311 |
|
|
312 |
static void |
static void |
313 |
cb_menu_zoomout(GtkWidget *widget, appdata_t *appdata) { |
cb_menu_zoomout(GtkMenuItem *item, appdata_t *appdata) { |
314 |
if(!appdata || !appdata->map) return; |
if(!appdata || !appdata->map) return; |
315 |
|
|
316 |
map_set_zoom(appdata->map, appdata->map->state->zoom/ZOOM_FACTOR_MENU, TRUE); |
map_set_zoom(appdata->map, appdata->map->state->zoom/ZOOM_FACTOR_MENU, TRUE); |
318 |
} |
} |
319 |
|
|
320 |
static void |
static void |
321 |
cb_menu_track_import(GtkWidget *window, appdata_t *appdata) { |
cb_menu_track_import(GtkMenuItem *item, appdata_t *appdata) { |
322 |
|
|
323 |
/* open a file selector */ |
/* open a file selector */ |
324 |
GtkWidget *dialog; |
GtkWidget *dialog; |
367 |
} |
} |
368 |
|
|
369 |
static void |
static void |
370 |
cb_menu_track_gps(GtkWidget *window, gpointer data) { |
cb_menu_track_gps(GtkMenuItem *item, gpointer data) { |
371 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
372 |
|
|
373 |
if(gtk_check_menu_item_get_active( |
if(gtk_check_menu_item_get_active( |
379 |
} |
} |
380 |
|
|
381 |
static void |
static void |
382 |
cb_menu_track_export(GtkWidget *window, gpointer data) { |
cb_menu_track_export(GtkMenuItem *item, gpointer data) { |
383 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
384 |
messagef(GTK_WIDGET(appdata->window), _("NIY"), |
messagef(GTK_WIDGET(appdata->window), _("NIY"), |
385 |
_("Track export is not yet supported.")); |
_("Track export is not yet supported.")); |
386 |
} |
} |
387 |
|
|
388 |
static void |
static void |
389 |
cb_menu_track_clear(GtkWidget *window, gpointer data) { |
cb_menu_track_clear(GtkMenuItem *item, gpointer data) { |
390 |
appdata_t *appdata = (appdata_t*)data; |
appdata_t *appdata = (appdata_t*)data; |
391 |
track_do(appdata, TRACK_NONE, NULL); |
track_do(appdata, TRACK_NONE, NULL); |
392 |
} |
} |
907 |
|
|
908 |
g_thread_init(NULL); |
g_thread_init(NULL); |
909 |
|
|
|
gps_init(&appdata); |
|
|
|
|
910 |
gtk_init (&argc, &argv); |
gtk_init (&argc, &argv); |
911 |
|
|
912 |
|
gps_init(&appdata); |
913 |
|
|
914 |
#ifdef USE_HILDON |
#ifdef USE_HILDON |
915 |
printf("Installing osso context for \"org.harbaum." PACKAGE "\"\n"); |
printf("Installing osso context for \"org.harbaum." PACKAGE "\"\n"); |
916 |
appdata.osso_context = osso_initialize("org.harbaum."PACKAGE, |
appdata.osso_context = osso_initialize("org.harbaum."PACKAGE, |
1008 |
puts("gtk_main() left"); |
puts("gtk_main() left"); |
1009 |
|
|
1010 |
track_save(appdata.project, appdata.track.track); |
track_save(appdata.project, appdata.track.track); |
1011 |
|
track_clear(&appdata, appdata.track.track); |
1012 |
|
|
1013 |
/* save a diff if there are dirty entries */ |
/* save a diff if there are dirty entries */ |
1014 |
diff_save(appdata.project, appdata.osm); |
diff_save(appdata.project, appdata.osm); |