428 |
GtkWidget *menu_shell, |
GtkWidget *menu_shell, |
429 |
GtkSignalFunc activate_cb, |
GtkSignalFunc activate_cb, |
430 |
char *label, |
char *label, |
431 |
const gchar *stock_id, // overridden by label, accels |
const gchar *icon_name, // stock id or name for icon_load |
432 |
|
// overridden by label, accels, icon_name |
433 |
const gchar *accel_path, |
const gchar *accel_path, |
434 |
guint accel_key, // from gdk/gdkkeysyms.h |
guint accel_key, // from gdk/gdkkeysyms.h |
435 |
GdkModifierType accel_mods, // e.g. GDK_CONTROL_MASK |
GdkModifierType accel_mods, // e.g. GDK_CONTROL_MASK |
436 |
gboolean is_check, gboolean check_status) |
gboolean is_check, gboolean check_status) |
437 |
{ |
{ |
438 |
GtkWidget *item = NULL; |
GtkWidget *item = NULL; |
439 |
GtkStockItem stock_item; |
GtkWidget *image = NULL; |
440 |
|
|
441 |
gboolean stock_item_known = FALSE; |
gboolean stock_item_known = FALSE; |
442 |
if (stock_id != NULL) { |
GtkStockItem stock_item; |
443 |
stock_item_known = gtk_stock_lookup(stock_id, &stock_item); |
if (icon_name != NULL) { |
444 |
|
stock_item_known = gtk_stock_lookup(icon_name, &stock_item); |
445 |
} |
} |
446 |
|
|
447 |
// Icons |
// Icons |
449 |
item = is_check ? gtk_check_menu_item_new_with_mnemonic (label) |
item = is_check ? gtk_check_menu_item_new_with_mnemonic (label) |
450 |
: gtk_menu_item_new_with_mnemonic (label); |
: gtk_menu_item_new_with_mnemonic (label); |
451 |
#else |
#else |
452 |
if (is_check || !stock_item_known) { |
if (is_check) { |
453 |
item = is_check ? gtk_check_menu_item_new_with_mnemonic (label) |
item = gtk_check_menu_item_new_with_mnemonic (label); |
454 |
: gtk_menu_item_new_with_mnemonic (label); |
} |
455 |
|
else if (!stock_item_known) { |
456 |
|
GdkPixbuf *pbuf = icon_load(&appdata->icon, icon_name); |
457 |
|
if (pbuf) { |
458 |
|
image = gtk_image_new_from_pixbuf(pbuf); |
459 |
|
} |
460 |
|
if (image) { |
461 |
|
item = gtk_image_menu_item_new_with_mnemonic(label); |
462 |
|
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); |
463 |
|
} |
464 |
|
else { |
465 |
|
item = gtk_menu_item_new_with_mnemonic(label); |
466 |
|
} |
467 |
} |
} |
468 |
else { |
else { |
469 |
item = gtk_image_menu_item_new_with_mnemonic(label); |
item = gtk_image_menu_item_new_with_mnemonic(label); |
470 |
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); |
471 |
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); |
472 |
} |
} |
473 |
#endif |
#endif |
474 |
|
|
534 |
|
|
535 |
/* --------------- view menu ------------------- */ |
/* --------------- view menu ------------------- */ |
536 |
|
|
537 |
#ifndef UISPECIFIC_MENU_IS_MENU_BAR |
#ifndef UISPECIFIC_MAIN_MENU_IS_MENU_BAR |
538 |
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()); |
539 |
#endif |
#endif |
540 |
|
|
572 |
|
|
573 |
appdata->menu_item_osm_upload = menu_append_new_item( |
appdata->menu_item_osm_upload = menu_append_new_item( |
574 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_upload), _("_Upload..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_upload), _("_Upload..."), |
575 |
NULL, "<OSM2Go-Main>/OSM/Upload", |
"upload.16", "<OSM2Go-Main>/OSM/Upload", |
576 |
GDK_u, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE |
GDK_u, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE |
577 |
); |
); |
578 |
|
|
579 |
menu_append_new_item( |
menu_append_new_item( |
580 |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_download), _("_Download..."), |
appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_download), _("_Download..."), |
581 |
NULL, "<OSM2Go-Main>/OSM/Download", |
"download.16", "<OSM2Go-Main>/OSM/Download", |
582 |
GDK_d, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE |
GDK_d, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE |
583 |
); |
); |
584 |
|
|