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 5697005: Change SimpleMenuModel on OSX to support dynamic icons (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moved background page badge fix to another CL. 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
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 705 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 } 716 }
717 717
718 // static 718 // static
719 void MenuGtk::SetButtonItemInfo(GtkWidget* button, gpointer userdata) { 719 void MenuGtk::SetButtonItemInfo(GtkWidget* button, gpointer userdata) {
720 menus::ButtonMenuItemModel* model = 720 menus::ButtonMenuItemModel* model =
721 reinterpret_cast<menus::ButtonMenuItemModel*>( 721 reinterpret_cast<menus::ButtonMenuItemModel*>(
722 g_object_get_data(G_OBJECT(button), "button-model")); 722 g_object_get_data(G_OBJECT(button), "button-model"));
723 int index = GPOINTER_TO_INT(g_object_get_data( 723 int index = GPOINTER_TO_INT(g_object_get_data(
724 G_OBJECT(button), "button-model-id")); 724 G_OBJECT(button), "button-model-id"));
725 725
726 if (model->IsLabelDynamicAt(index)) { 726 if (model->IsItemDynamicAt(index)) {
727 std::string label = 727 std::string label =
728 gfx::ConvertAcceleratorsFromWindowsStyle( 728 gfx::ConvertAcceleratorsFromWindowsStyle(
729 UTF16ToUTF8(model->GetLabelAt(index))); 729 UTF16ToUTF8(model->GetLabelAt(index)));
730 gtk_button_set_label(GTK_BUTTON(button), label.c_str()); 730 gtk_button_set_label(GTK_BUTTON(button), label.c_str());
731 } 731 }
732 732
733 gtk_widget_set_sensitive(GTK_WIDGET(button), model->IsEnabledAt(index)); 733 gtk_widget_set_sensitive(GTK_WIDGET(button), model->IsEnabledAt(index));
734 } 734 }
735 735
736 // static 736 // static
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 gtk_custom_menu_item_foreach_button(GTK_CUSTOM_MENU_ITEM(widget), 775 gtk_custom_menu_item_foreach_button(GTK_CUSTOM_MENU_ITEM(widget),
776 SetButtonItemInfo, 776 SetButtonItemInfo,
777 userdata); 777 userdata);
778 } 778 }
779 779
780 if (GTK_IS_MENU_ITEM(widget)) { 780 if (GTK_IS_MENU_ITEM(widget)) {
781 gtk_widget_set_sensitive(widget, model->IsEnabledAt(id)); 781 gtk_widget_set_sensitive(widget, model->IsEnabledAt(id));
782 782
783 if (model->IsVisibleAt(id)) { 783 if (model->IsVisibleAt(id)) {
784 // Update the menu item label if it is dynamic. 784 // Update the menu item label if it is dynamic.
785 if (model->IsLabelDynamicAt(id)) { 785 if (model->IsItemDynamicAt(id)) {
Evan Stade 2010/12/14 01:20:13 add TODO re: images (also in the native_menu_* fil
Andrew T Wilson (Slow) 2010/12/14 18:23:27 Done. BTW, where are the native_menu_* implementa
Evan Stade 2010/12/14 21:28:57 I think that's because the common pattern is to ju
786 std::string label = 786 std::string label =
787 gfx::ConvertAcceleratorsFromWindowsStyle( 787 gfx::ConvertAcceleratorsFromWindowsStyle(
788 UTF16ToUTF8(model->GetLabelAt(id))); 788 UTF16ToUTF8(model->GetLabelAt(id)));
789 789
790 #if GTK_CHECK_VERSION(2, 16, 0) 790 #if GTK_CHECK_VERSION(2, 16, 0)
791 gtk_menu_item_set_label(GTK_MENU_ITEM(widget), label.c_str()); 791 gtk_menu_item_set_label(GTK_MENU_ITEM(widget), label.c_str());
792 #else 792 #else
793 gtk_label_set_label(GTK_LABEL(GTK_BIN(widget)->child), label.c_str()); 793 gtk_label_set_label(GTK_LABEL(GTK_BIN(widget)->child), label.c_str());
794 #endif 794 #endif
795 } 795 }
796 796
797 gtk_widget_show(widget); 797 gtk_widget_show(widget);
798 } else { 798 } else {
799 gtk_widget_hide(widget); 799 gtk_widget_hide(widget);
800 } 800 }
801 801
802 GtkWidget* submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)); 802 GtkWidget* submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget));
803 if (submenu) { 803 if (submenu) {
804 gtk_container_foreach(GTK_CONTAINER(submenu), &SetMenuItemInfo, 804 gtk_container_foreach(GTK_CONTAINER(submenu), &SetMenuItemInfo,
805 userdata); 805 userdata);
806 } 806 }
807 } 807 }
808 } 808 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698