Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / browser / ui / libgtk2ui / chrome_gtk_menu_subclasses.h
blob6cc31ca0d60d396faa51026a18d099b40a4de8ab
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_UI_LIBGTK2UI_CHROME_GTK_MENU_SUBCLASSES_H_
6 #define CHROME_BROWSER_UI_LIBGTK2UI_CHROME_GTK_MENU_SUBCLASSES_H_
8 #include <gtk/gtk.h>
10 // This file declares two subclasses of Gtk's menu classes. We do this because
11 // when we were a GTK app proper, we had classes with the same names, and gtk
12 // theme authors started writing themes and styling chrome's menus by targeting
13 // these classes. We have to fetch our colors from these theme classes in
14 // specific because several newer GTK+2 themes are pixmap based and they
15 // specifically give real colors only to these classes.
17 G_BEGIN_DECLS
19 typedef struct _GtkCustomMenu GtkCustomMenu;
20 typedef struct _GtkCustomMenuClass GtkCustomMenuClass;
22 struct _GtkCustomMenu {
23 GtkMenu menu;
26 struct _GtkCustomMenuClass {
27 GtkMenuClass parent_class;
30 GtkWidget* gtk_custom_menu_new();
32 typedef struct _GtkCustomMenuItem GtkCustomMenuItem;
33 typedef struct _GtkCustomMenuItemClass GtkCustomMenuItemClass;
35 struct _GtkCustomMenuItem {
36 GtkMenuItem menu_item;
39 struct _GtkCustomMenuItemClass {
40 GtkMenuItemClass parent_class;
43 GtkWidget* gtk_custom_menu_item_new();
45 G_END_DECLS
47 #endif // CHROME_BROWSER_UI_LIBGTK2UI_CHROME_GTK_MENU_SUBCLASSES_H_