OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
794 if (GTK_IS_MENU_ITEM(widget)) { | 794 if (GTK_IS_MENU_ITEM(widget)) { |
795 gtk_widget_set_sensitive(widget, model->IsEnabledAt(id)); | 795 gtk_widget_set_sensitive(widget, model->IsEnabledAt(id)); |
796 | 796 |
797 if (model->IsVisibleAt(id)) { | 797 if (model->IsVisibleAt(id)) { |
798 // Update the menu item label if it is dynamic. | 798 // Update the menu item label if it is dynamic. |
799 if (model->IsItemDynamicAt(id)) { | 799 if (model->IsItemDynamicAt(id)) { |
800 std::string label = | 800 std::string label = |
801 gfx::ConvertAcceleratorsFromWindowsStyle( | 801 gfx::ConvertAcceleratorsFromWindowsStyle( |
802 UTF16ToUTF8(model->GetLabelAt(id))); | 802 UTF16ToUTF8(model->GetLabelAt(id))); |
803 | 803 |
804 #if GTK_CHECK_VERSION(2, 16, 0) | |
805 gtk_menu_item_set_label(GTK_MENU_ITEM(widget), label.c_str()); | 804 gtk_menu_item_set_label(GTK_MENU_ITEM(widget), label.c_str()); |
806 #else | |
807 gtk_label_set_label(GTK_LABEL(GTK_BIN(widget)->child), label.c_str()); | |
808 #endif | |
809 if (GTK_IS_IMAGE_MENU_ITEM(widget)) { | 805 if (GTK_IS_IMAGE_MENU_ITEM(widget)) { |
810 SkBitmap icon; | 806 SkBitmap icon; |
811 if (model->GetIconAt(id, &icon)) { | 807 if (model->GetIconAt(id, &icon)) { |
812 GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(&icon); | 808 GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(&icon); |
813 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), | 809 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), |
814 gtk_image_new_from_pixbuf(pixbuf)); | 810 gtk_image_new_from_pixbuf(pixbuf)); |
815 g_object_unref(pixbuf); | 811 g_object_unref(pixbuf); |
816 } else { | 812 } else { |
817 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), NULL); | 813 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), NULL); |
818 } | 814 } |
819 } | 815 } |
820 } | 816 } |
821 | 817 |
822 gtk_widget_show(widget); | 818 gtk_widget_show(widget); |
823 } else { | 819 } else { |
824 gtk_widget_hide(widget); | 820 gtk_widget_hide(widget); |
825 } | 821 } |
826 | 822 |
827 GtkWidget* submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)); | 823 GtkWidget* submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)); |
828 if (submenu) { | 824 if (submenu) { |
829 gtk_container_foreach(GTK_CONTAINER(submenu), &SetMenuItemInfo, | 825 gtk_container_foreach(GTK_CONTAINER(submenu), &SetMenuItemInfo, |
830 userdata); | 826 userdata); |
831 } | 827 } |
832 } | 828 } |
833 } | 829 } |
OLD | NEW |