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 |
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 |
|
|