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

Side by Side Diff: chrome/browser/ui/gtk/gtk_custom_menu_item.cc

Issue 7227027: GTK: More 2.18 goodness. Move from macros to real accessor functions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove views/ Created 9 years, 5 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) 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/gtk_custom_menu_item.h" 5 #include "chrome/browser/ui/gtk/gtk_custom_menu_item.h"
6 6
7 #include "base/i18n/rtl.h" 7 #include "base/i18n/rtl.h"
8 #include "chrome/browser/ui/gtk/gtk_custom_menu.h" 8 #include "chrome/browser/ui/gtk/gtk_custom_menu.h"
9 9
10 // This method was autogenerated by the program glib-genmarshall, which 10 // This method was autogenerated by the program glib-genmarshall, which
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 static void gtk_custom_menu_item_finalize(GObject *object) { 164 static void gtk_custom_menu_item_finalize(GObject *object) {
165 GtkCustomMenuItem* item = GTK_CUSTOM_MENU_ITEM(object); 165 GtkCustomMenuItem* item = GTK_CUSTOM_MENU_ITEM(object);
166 g_list_free(item->all_widgets); 166 g_list_free(item->all_widgets);
167 g_list_free(item->button_widgets); 167 g_list_free(item->button_widgets);
168 168
169 G_OBJECT_CLASS(gtk_custom_menu_item_parent_class)->finalize(object); 169 G_OBJECT_CLASS(gtk_custom_menu_item_parent_class)->finalize(object);
170 } 170 }
171 171
172 static gint gtk_custom_menu_item_expose(GtkWidget* widget, 172 static gint gtk_custom_menu_item_expose(GtkWidget* widget,
173 GdkEventExpose* event) { 173 GdkEventExpose* event) {
174 if (GTK_WIDGET_VISIBLE(widget) && 174 if (gtk_widget_get_visible(widget) &&
175 GTK_WIDGET_MAPPED(widget) && 175 GTK_WIDGET_MAPPED(widget) &&
176 gtk_bin_get_child(GTK_BIN(widget))) { 176 gtk_bin_get_child(GTK_BIN(widget))) {
177 // We skip the drawing in the GtkMenuItem class it draws the highlighted 177 // We skip the drawing in the GtkMenuItem class it draws the highlighted
178 // background and we don't want that. 178 // background and we don't want that.
179 gtk_container_propagate_expose(GTK_CONTAINER(widget), 179 gtk_container_propagate_expose(GTK_CONTAINER(widget),
180 gtk_bin_get_child(GTK_BIN(widget)), 180 gtk_bin_get_child(GTK_BIN(widget)),
181 event); 181 event);
182 } 182 }
183 183
184 return FALSE; 184 return FALSE;
(...skipping 20 matching lines...) Expand all
205 if (base::i18n::IsRTL()) 205 if (base::i18n::IsRTL())
206 std::swap(first_button, last_button); 206 std::swap(first_button, last_button);
207 207
208 int x = first_button->allocation.x; 208 int x = first_button->allocation.x;
209 int y = first_button->allocation.y; 209 int y = first_button->allocation.y;
210 int width = last_button->allocation.width + last_button->allocation.x - 210 int width = last_button->allocation.width + last_button->allocation.x -
211 first_button->allocation.x; 211 first_button->allocation.x;
212 int height = last_button->allocation.height; 212 int height = last_button->allocation.height;
213 213
214 gtk_paint_box(hbox->style, hbox->window, 214 gtk_paint_box(hbox->style, hbox->window,
215 static_cast<GtkStateType>( 215 gtk_widget_get_state(current_button),
216 GTK_WIDGET_STATE(current_button)),
217 GTK_SHADOW_OUT, 216 GTK_SHADOW_OUT,
218 &current_button->allocation, hbox, "button", 217 &current_button->allocation, hbox, "button",
219 x, y, width, height); 218 x, y, width, height);
220 219
221 // Propagate to the button's children. 220 // Propagate to the button's children.
222 gtk_container_propagate_expose( 221 gtk_container_propagate_expose(
223 GTK_CONTAINER(current_button), 222 GTK_CONTAINER(current_button),
224 gtk_bin_get_child(GTK_BIN(current_button)), 223 gtk_bin_get_child(GTK_BIN(current_button)),
225 event); 224 event);
226 } 225 }
(...skipping 19 matching lines...) Expand all
246 current_item != NULL; current_item = g_list_next(current_item)) { 245 current_item != NULL; current_item = g_list_next(current_item)) {
247 if (GTK_IS_BUTTON(current_item->data)) { 246 if (GTK_IS_BUTTON(current_item->data)) {
248 // Check to see if this is the last button in a run. 247 // Check to see if this is the last button in a run.
249 GList* next_item = g_list_next(current_item); 248 GList* next_item = g_list_next(current_item);
250 if (next_item && GTK_IS_BUTTON(next_item->data)) { 249 if (next_item && GTK_IS_BUTTON(next_item->data)) {
251 GtkWidget* current_button = GTK_WIDGET(current_item->data); 250 GtkWidget* current_button = GTK_WIDGET(current_item->data);
252 GtkAllocation child_alloc = 251 GtkAllocation child_alloc =
253 gtk_bin_get_child(GTK_BIN(current_button))->allocation; 252 gtk_bin_get_child(GTK_BIN(current_button))->allocation;
254 int half_offset = widget->style->xthickness / 2; 253 int half_offset = widget->style->xthickness / 2;
255 gtk_paint_vline(widget->style, widget->window, 254 gtk_paint_vline(widget->style, widget->window,
256 static_cast<GtkStateType>( 255 gtk_widget_get_state(current_button),
257 GTK_WIDGET_STATE(current_button)),
258 &event->area, widget, "button", 256 &event->area, widget, "button",
259 child_alloc.y, 257 child_alloc.y,
260 child_alloc.y + child_alloc.height, 258 child_alloc.y + child_alloc.height,
261 current_button->allocation.x + 259 current_button->allocation.x +
262 current_button->allocation.width - half_offset); 260 current_button->allocation.width - half_offset);
263 } 261 }
264 } 262 }
265 } 263 }
266 264
267 // Finally, draw the selected item on top of the separators so there are no 265 // Finally, draw the selected item on top of the separators so there are no
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 gpointer callback_data) { 469 gpointer callback_data) {
472 // Even though we're filtering |all_widgets| on GTK_IS_BUTTON(), this isn't 470 // Even though we're filtering |all_widgets| on GTK_IS_BUTTON(), this isn't
473 // equivalent to |button_widgets| because we also want the button-labels. 471 // equivalent to |button_widgets| because we also want the button-labels.
474 for (GList* i = menu_item->all_widgets; i && GTK_IS_BUTTON(i->data); 472 for (GList* i = menu_item->all_widgets; i && GTK_IS_BUTTON(i->data);
475 i = g_list_next(i)) { 473 i = g_list_next(i)) {
476 if (GTK_IS_BUTTON(i->data)) { 474 if (GTK_IS_BUTTON(i->data)) {
477 callback(GTK_WIDGET(i->data), callback_data); 475 callback(GTK_WIDGET(i->data), callback_data);
478 } 476 }
479 } 477 }
480 } 478 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/gtk_chrome_shrinkable_hbox_unittest.cc ('k') | chrome/browser/ui/gtk/gtk_expanded_container.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698