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 |
58 |
/* disable all menu entries related to map */ |
/* disable all menu entries related to map */ |
59 |
gtk_widget_set_sensitive(appdata->menu_osm, project_valid); |
gtk_widget_set_sensitive(appdata->menu_osm, project_valid); |
60 |
gtk_widget_set_sensitive(appdata->menu_item_osm_upload, osm_valid); |
gtk_widget_set_sensitive(appdata->menu_item_osm_upload, osm_valid); |
61 |
gtk_widget_set_sensitive(appdata->menu_item_osm_undo, osm_valid); |
if(appdata->menu_item_osm_undo) |
62 |
|
gtk_widget_set_sensitive(appdata->menu_item_osm_undo, osm_valid); |
63 |
gtk_widget_set_sensitive(appdata->menu_item_osm_save_changes, osm_valid); |
gtk_widget_set_sensitive(appdata->menu_item_osm_save_changes, osm_valid); |
64 |
gtk_widget_set_sensitive(appdata->menu_item_osm_undo_changes, osm_valid); |
gtk_widget_set_sensitive(appdata->menu_item_osm_undo_changes, osm_valid); |
65 |
gtk_widget_set_sensitive(appdata->track.menu_track, osm_valid); |
gtk_widget_set_sensitive(appdata->track.menu_track, osm_valid); |
270 |
|
|
271 |
if(!yes_no_f(GTK_WIDGET(appdata->window), NULL, 0, 0, |
if(!yes_no_f(GTK_WIDGET(appdata->window), NULL, 0, 0, |
272 |
_("Discard local changes?"), |
_("Discard local changes?"), |
273 |
_("Throw away all the changes you've not uploaded yet? This can't be undone."))) |
_("Throw away all the changes you've not " |
274 |
|
"uploaded yet? This can't be undone."))) |
275 |
return; |
return; |
276 |
|
|
277 |
banner_busy_start(appdata, 1, _("Redrawing...")); |
banner_busy_start(appdata, 1, _("Redrawing...")); |
286 |
} |
} |
287 |
|
|
288 |
static void |
static void |
289 |
|
cb_menu_osm_relations(GtkWidget *widget, gpointer data) { |
290 |
|
relation_list((appdata_t*)data); |
291 |
|
} |
292 |
|
|
293 |
|
static void |
294 |
cb_menu_fullscreen(GtkWidget *widget, gpointer data) { |
cb_menu_fullscreen(GtkWidget *widget, gpointer data) { |
295 |
appdata_t *appdata = (appdata_t *)data; |
appdata_t *appdata = (appdata_t *)data; |
296 |
|
|
430 |
GtkWidget *menu_shell, |
GtkWidget *menu_shell, |
431 |
GtkSignalFunc activate_cb, |
GtkSignalFunc activate_cb, |
432 |
char *label, |
char *label, |
433 |
const gchar *stock_id, // overridden by label, accels |
const gchar *icon_name, // stock id or name for icon_load |
434 |
|
// overridden by label, accels, icon_name |
435 |
const gchar *accel_path, |
const gchar *accel_path, |
436 |
guint accel_key, // from gdk/gdkkeysyms.h |
guint accel_key, // from gdk/gdkkeysyms.h |
437 |
GdkModifierType accel_mods, // e.g. GDK_CONTROL_MASK |
GdkModifierType accel_mods, // e.g. GDK_CONTROL_MASK |
438 |
gboolean is_check, gboolean check_status) |
gboolean is_check, gboolean check_status) |
439 |
{ |
{ |
440 |
GtkWidget *item = NULL; |
GtkWidget *item = NULL; |
441 |
GtkStockItem stock_item; |
GtkWidget *image = NULL; |
442 |
|
|
443 |
gboolean stock_item_known = FALSE; |
gboolean stock_item_known = FALSE; |
444 |
if (stock_id != NULL) { |
GtkStockItem stock_item; |
445 |
stock_item_known = gtk_stock_lookup(stock_id, &stock_item); |
if (icon_name != NULL) { |
446 |
|
stock_item_known = gtk_stock_lookup(icon_name, &stock_item); |
447 |
} |
} |
448 |
|
|
449 |
// Icons |
// Icons |
451 |
item = is_check ? gtk_check_menu_item_new_with_mnemonic (label) |
item = is_check ? gtk_check_menu_item_new_with_mnemonic (label) |
452 |
: gtk_menu_item_new_with_mnemonic (label); |
: gtk_menu_item_new_with_mnemonic (label); |
453 |
#else |
#else |
454 |
if (is_check || !stock_item_known) { |
if (is_check) { |
455 |
item = is_check ? gtk_check_menu_item_new_with_mnemonic (label) |
item = gtk_check_menu_item_new_with_mnemonic (label); |
456 |
: gtk_menu_item_new_with_mnemonic (label); |
} |
457 |
|
else if (!stock_item_known) { |
458 |
|
GdkPixbuf *pbuf = icon_load(&appdata->icon, icon_name); |
459 |
|
if (pbuf) { |
460 |
|
image = gtk_image_new_from_pixbuf(pbuf); |
461 |
|
} |
462 |
|
if (image) { |
463 |
|
item = gtk_image_menu_item_new_with_mnemonic(label); |
464 |
|
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); |
465 |
|
} |
466 |
|
else { |
467 |
|
item = gtk_menu_item_new_with_mnemonic(label); |
468 |
|
} |
469 |
} |
} |
470 |
else { |
else { |
471 |
item = gtk_image_menu_item_new_with_mnemonic(label); |
item = gtk_image_menu_item_new_with_mnemonic(label); |
472 |
GtkWidget *stock_image = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_MENU); |
image = gtk_image_new_from_stock(icon_name, GTK_ICON_SIZE_MENU); |
473 |
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), stock_image); |
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); |
474 |
} |
} |
475 |
#endif |
#endif |
476 |
|
|
536 |
|
|
537 |
/* --------------- view menu ------------------- */ |
/* --------------- view menu ------------------- */ |
538 |
|
|
539 |
#ifndef UISPECIFIC_MENU_IS_MENU_BAR |
#ifndef UISPECIFIC_MAIN_MENU_IS_MENU_BAR |
540 |
gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); |
gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); |
541 |
#endif |
#endif |
542 |
|
|
574 |
|
|
575 |
appdata->menu_item_osm_upload = menu_append_new_item( |
appdata->menu_item_osm_upload = menu_append_new_item( |
576 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_upload), _("_Upload..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_upload), _("_Upload..."), |
577 |
NULL, "<OSM2Go-Main>/OSM/Upload", |
"upload.16", "<OSM2Go-Main>/OSM/Upload", |
578 |
GDK_u, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE |
GDK_u, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE |
579 |
); |
); |
580 |
|
|
581 |
menu_append_new_item( |
menu_append_new_item( |
582 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_download), _("_Download..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_download), _("_Download..."), |
583 |
NULL, "<OSM2Go-Main>/OSM/Download", |
"download.16", "<OSM2Go-Main>/OSM/Download", |
584 |
GDK_d, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE |
GDK_d, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE |
585 |
); |
); |
586 |
|
|
607 |
0, 0, FALSE, FALSE |
0, 0, FALSE, FALSE |
608 |
); |
); |
609 |
|
|
610 |
|
gtk_menu_shell_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new()); |
611 |
|
appdata->menu_item_osm_relations = menu_append_new_item( |
612 |
|
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_osm_relations), _("_Relations..."), |
613 |
|
NULL, "<OSM2Go-Main>/OSM/Relations", |
614 |
|
GDK_r, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE |
615 |
|
); |
616 |
|
|
617 |
/* -------------------- wms submenu -------------------- */ |
/* -------------------- wms submenu -------------------- */ |
618 |
|
|
619 |
appdata->menu_wms = item = gtk_menu_item_new_with_mnemonic( _("_WMS") ); |
appdata->menu_wms = item = gtk_menu_item_new_with_mnemonic( _("_WMS") ); |
839 |
|
|
840 |
project_free(appdata->project); |
project_free(appdata->project); |
841 |
|
|
842 |
undo_free(appdata->undo_state); |
if(appdata->menu_item_osm_undo) |
843 |
|
undo_free(appdata->undo.state); |
844 |
|
|
845 |
puts("everything is gone"); |
puts("everything is gone"); |
846 |
} |
} |