Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(203)

Side by Side Diff: chrome/browser/gtk/menu_gtk.cc

Issue 6014009: Update menu icons for dynamic items when we update the label. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Removed broken handling of case with no initial icon. Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/gtk/menu_gtk.h" 5 #include "chrome/browser/gtk/menu_gtk.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "app/menus/accelerator_gtk.h" 9 #include "app/menus/accelerator_gtk.h"
10 #include "app/menus/button_menu_item_model.h" 10 #include "app/menus/button_menu_item_model.h"
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 gtk_custom_menu_item_foreach_button(GTK_CUSTOM_MENU_ITEM(widget), 796 gtk_custom_menu_item_foreach_button(GTK_CUSTOM_MENU_ITEM(widget),
797 SetButtonItemInfo, 797 SetButtonItemInfo,
798 userdata); 798 userdata);
799 } 799 }
800 800
801 if (GTK_IS_MENU_ITEM(widget)) { 801 if (GTK_IS_MENU_ITEM(widget)) {
802 gtk_widget_set_sensitive(widget, model->IsEnabledAt(id)); 802 gtk_widget_set_sensitive(widget, model->IsEnabledAt(id));
803 803
804 if (model->IsVisibleAt(id)) { 804 if (model->IsVisibleAt(id)) {
805 // Update the menu item label if it is dynamic. 805 // Update the menu item label if it is dynamic.
806 // TODO(atwilson): Update the icon as well (http://crbug.com/66508).
807 if (model->IsItemDynamicAt(id)) { 806 if (model->IsItemDynamicAt(id)) {
808 std::string label = 807 std::string label =
809 gfx::ConvertAcceleratorsFromWindowsStyle( 808 gfx::ConvertAcceleratorsFromWindowsStyle(
810 UTF16ToUTF8(model->GetLabelAt(id))); 809 UTF16ToUTF8(model->GetLabelAt(id)));
811 810
812 #if GTK_CHECK_VERSION(2, 16, 0) 811 #if GTK_CHECK_VERSION(2, 16, 0)
813 gtk_menu_item_set_label(GTK_MENU_ITEM(widget), label.c_str()); 812 gtk_menu_item_set_label(GTK_MENU_ITEM(widget), label.c_str());
814 #else 813 #else
815 gtk_label_set_label(GTK_LABEL(GTK_BIN(widget)->child), label.c_str()); 814 gtk_label_set_label(GTK_LABEL(GTK_BIN(widget)->child), label.c_str());
Evan Stade 2010/12/23 02:36:43 side note. I wonder if this actually works for Gt
816 #endif 815 #endif
816 if (GTK_IS_IMAGE_MENU_ITEM(widget)) {
817 SkBitmap icon;
818 if (model->GetIconAt(id, &icon)) {
819 GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(&icon);
820 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget),
821 gtk_image_new_from_pixbuf(pixbuf));
822 g_object_unref(pixbuf);
823 } else {
824 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), NULL);
825 }
826 }
817 } 827 }
818 828
819 gtk_widget_show(widget); 829 gtk_widget_show(widget);
820 } else { 830 } else {
821 gtk_widget_hide(widget); 831 gtk_widget_hide(widget);
822 } 832 }
823 833
824 GtkWidget* submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)); 834 GtkWidget* submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget));
825 if (submenu) { 835 if (submenu) {
826 gtk_container_foreach(GTK_CONTAINER(submenu), &SetMenuItemInfo, 836 gtk_container_foreach(GTK_CONTAINER(submenu), &SetMenuItemInfo,
827 userdata); 837 userdata);
828 } 838 }
829 } 839 }
830 } 840 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698