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

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

Issue 49035: Linux UI theming:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 9 months 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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "base/gfx/gtk_util.h" 7 #include "base/gfx/gtk_util.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "chrome/common/l10n_util.h" 10 #include "chrome/common/l10n_util.h"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 break; 122 break;
123 } 123 }
124 124
125 if (menu_data->submenu) { 125 if (menu_data->submenu) {
126 GtkWidget* submenu = gtk_menu_new(); 126 GtkWidget* submenu = gtk_menu_new();
127 BuildMenuIn(submenu, menu_data->submenu, accel_group); 127 BuildMenuIn(submenu, menu_data->submenu, accel_group);
128 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), submenu); 128 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), submenu);
129 } 129 }
130 130
131 if (accel_group && menu_data->accel_key) { 131 if (accel_group && menu_data->accel_key) {
132 // If we ever want to let the user do any key remaping, we'll need to 132 // If we ever want to let the user do any key re-mapping, we'll need to
133 // change the following so we make a gtk_accel_map which keeps the actual 133 // change the following so we make a gtk_accel_map which keeps the actual
134 // keys. 134 // keys.
135 gtk_widget_add_accelerator(menu_item, 135 gtk_widget_add_accelerator(menu_item,
136 "activate", 136 "activate",
137 accel_group, 137 accel_group,
138 menu_data->accel_key, 138 menu_data->accel_key,
139 GdkModifierType(menu_data->accel_modifiers), 139 GdkModifierType(menu_data->accel_modifiers),
140 GTK_ACCEL_VISIBLE); 140 GTK_ACCEL_VISIBLE);
141 } 141 }
142 142
143 g_object_set_data(G_OBJECT(menu_item), "menu-data", 143 g_object_set_data(G_OBJECT(menu_item), "menu-data",
144 const_cast<MenuCreateMaterial*>(menu_data)); 144 const_cast<MenuCreateMaterial*>(menu_data));
145 145
146 g_signal_connect(G_OBJECT(menu_item), "activate", 146 g_signal_connect(G_OBJECT(menu_item), "activate",
147 G_CALLBACK(OnMenuItemActivated), this); 147 G_CALLBACK(OnMenuItemActivated), this);
148 148
149 gtk_widget_show(menu_item); 149 gtk_widget_show(menu_item);
150 gtk_menu_append(menu, menu_item); 150 gtk_menu_append(menu, menu_item);
151 last_menu_item = menu_item; 151 last_menu_item = menu_item;
152 } 152 }
153 gtk_widget_modify_bg(menu, GTK_STATE_NORMAL, &gfx::kGdkWhite);
153 } 154 }
154 155
155 void MenuGtk::BuildMenuFromDelegate() { 156 void MenuGtk::BuildMenuFromDelegate() {
156 // Note that the menu IDs start at 1, not 0. 157 // Note that the menu IDs start at 1, not 0.
157 for (int i = 1; i <= delegate_->GetItemCount(); ++i) { 158 for (int i = 1; i <= delegate_->GetItemCount(); ++i) {
158 GtkWidget* menu_item = NULL; 159 GtkWidget* menu_item = NULL;
159 160
160 if (delegate_->IsItemSeparator(i)) { 161 if (delegate_->IsItemSeparator(i)) {
161 menu_item = gtk_separator_menu_item_new(); 162 menu_item = gtk_separator_menu_item_new();
162 } else if (delegate_->HasIcon(i)) { 163 } else if (delegate_->HasIcon(i)) {
(...skipping 10 matching lines...) Expand all
173 174
174 g_object_set_data(G_OBJECT(menu_item), "menu-id", 175 g_object_set_data(G_OBJECT(menu_item), "menu-id",
175 reinterpret_cast<void*>(i)); 176 reinterpret_cast<void*>(i));
176 177
177 g_signal_connect(G_OBJECT(menu_item), "activate", 178 g_signal_connect(G_OBJECT(menu_item), "activate",
178 G_CALLBACK(OnMenuItemActivatedById), this); 179 G_CALLBACK(OnMenuItemActivatedById), this);
179 180
180 gtk_widget_show(menu_item); 181 gtk_widget_show(menu_item);
181 gtk_menu_shell_append(GTK_MENU_SHELL(menu_.get()), menu_item); 182 gtk_menu_shell_append(GTK_MENU_SHELL(menu_.get()), menu_item);
182 } 183 }
184 gtk_widget_modify_bg(menu_.get(), GTK_STATE_NORMAL, &gfx::kGdkWhite);
183 } 185 }
184 186
185 // static 187 // static
186 void MenuGtk::OnMenuItemActivated(GtkMenuItem* menuitem, MenuGtk* menu) { 188 void MenuGtk::OnMenuItemActivated(GtkMenuItem* menuitem, MenuGtk* menu) {
187 // We receive activation messages when highlighting a menu that has a 189 // We receive activation messages when highlighting a menu that has a
188 // submenu. Ignore them. 190 // submenu. Ignore them.
189 if (!gtk_menu_item_get_submenu(menuitem)) { 191 if (!gtk_menu_item_get_submenu(menuitem)) {
190 const MenuCreateMaterial* data = 192 const MenuCreateMaterial* data =
191 reinterpret_cast<const MenuCreateMaterial*>( 193 reinterpret_cast<const MenuCreateMaterial*>(
192 g_object_get_data(G_OBJECT(menuitem), "menu-data")); 194 g_object_get_data(G_OBJECT(menuitem), "menu-data"));
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 widget, menu->delegate_->IsCommandEnabled(data->id)); 255 widget, menu->delegate_->IsCommandEnabled(data->id));
254 256
255 GtkWidget* submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)); 257 GtkWidget* submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget));
256 if (submenu) { 258 if (submenu) {
257 gtk_container_foreach(GTK_CONTAINER(submenu), &SetMenuItemInfo, 259 gtk_container_foreach(GTK_CONTAINER(submenu), &SetMenuItemInfo,
258 userdata); 260 userdata);
259 } 261 }
260 } 262 }
261 } 263 }
262 } 264 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698