OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/gtk/menu_gtk.h" | 5 #include "chrome/browser/ui/gtk/menu_gtk.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 GtkWidget* MenuGtk::BuildMenuItemWithImage(const std::string& label, | 414 GtkWidget* MenuGtk::BuildMenuItemWithImage(const std::string& label, |
415 GtkWidget* image) { | 415 GtkWidget* image) { |
416 GtkWidget* menu_item = | 416 GtkWidget* menu_item = |
417 gtk_image_menu_item_new_with_mnemonic(label.c_str()); | 417 gtk_image_menu_item_new_with_mnemonic(label.c_str()); |
418 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image); | 418 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image); |
419 return menu_item; | 419 return menu_item; |
420 } | 420 } |
421 | 421 |
422 GtkWidget* MenuGtk::BuildMenuItemWithImage(const std::string& label, | 422 GtkWidget* MenuGtk::BuildMenuItemWithImage(const std::string& label, |
423 const SkBitmap& icon) { | 423 const SkBitmap& icon) { |
424 GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(&icon); | 424 GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(icon); |
425 GtkWidget* menu_item = BuildMenuItemWithImage(label, | 425 GtkWidget* menu_item = BuildMenuItemWithImage(label, |
426 gtk_image_new_from_pixbuf(pixbuf)); | 426 gtk_image_new_from_pixbuf(pixbuf)); |
427 g_object_unref(pixbuf); | 427 g_object_unref(pixbuf); |
428 return menu_item; | 428 return menu_item; |
429 } | 429 } |
430 | 430 |
431 GtkWidget* MenuGtk::BuildMenuItemWithLabel(const std::string& label, | 431 GtkWidget* MenuGtk::BuildMenuItemWithLabel(const std::string& label, |
432 int command_id) { | 432 int command_id) { |
433 GtkWidget* img = | 433 GtkWidget* img = |
434 delegate_ ? delegate_->GetImageForCommandId(command_id) : | 434 delegate_ ? delegate_->GetImageForCommandId(command_id) : |
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
871 if (model->IsVisibleAt(id)) { | 871 if (model->IsVisibleAt(id)) { |
872 // Update the menu item label if it is dynamic. | 872 // Update the menu item label if it is dynamic. |
873 if (model->IsItemDynamicAt(id)) { | 873 if (model->IsItemDynamicAt(id)) { |
874 std::string label = ui::ConvertAcceleratorsFromWindowsStyle( | 874 std::string label = ui::ConvertAcceleratorsFromWindowsStyle( |
875 UTF16ToUTF8(model->GetLabelAt(id))); | 875 UTF16ToUTF8(model->GetLabelAt(id))); |
876 | 876 |
877 gtk_menu_item_set_label(GTK_MENU_ITEM(widget), label.c_str()); | 877 gtk_menu_item_set_label(GTK_MENU_ITEM(widget), label.c_str()); |
878 if (GTK_IS_IMAGE_MENU_ITEM(widget)) { | 878 if (GTK_IS_IMAGE_MENU_ITEM(widget)) { |
879 SkBitmap icon; | 879 SkBitmap icon; |
880 if (model->GetIconAt(id, &icon)) { | 880 if (model->GetIconAt(id, &icon)) { |
881 GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(&icon); | 881 GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(icon); |
882 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), | 882 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), |
883 gtk_image_new_from_pixbuf(pixbuf)); | 883 gtk_image_new_from_pixbuf(pixbuf)); |
884 g_object_unref(pixbuf); | 884 g_object_unref(pixbuf); |
885 } else { | 885 } else { |
886 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), NULL); | 886 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), NULL); |
887 } | 887 } |
888 } | 888 } |
889 } | 889 } |
890 | 890 |
891 gtk_widget_show(widget); | 891 gtk_widget_show(widget); |
892 } else { | 892 } else { |
893 gtk_widget_hide(widget); | 893 gtk_widget_hide(widget); |
894 } | 894 } |
895 | 895 |
896 GtkWidget* submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)); | 896 GtkWidget* submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)); |
897 if (submenu) { | 897 if (submenu) { |
898 gtk_container_foreach(GTK_CONTAINER(submenu), &SetMenuItemInfo, | 898 gtk_container_foreach(GTK_CONTAINER(submenu), &SetMenuItemInfo, |
899 userdata); | 899 userdata); |
900 } | 900 } |
901 } | 901 } |
902 } | 902 } |
OLD | NEW |