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. 4 5 #ifndef CHROME_BROWSER_UI_LIBGTK2UI_CHROME_GTK_MENU_SUBCLASSES_H_ 6 #define CHROME_BROWSER_UI_LIBGTK2UI_CHROME_GTK_MENU_SUBCLASSES_H_ 7 8 #include <gtk/gtk.h> 9 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. 16 17 G_BEGIN_DECLS 18 19 typedef struct _GtkCustomMenu GtkCustomMenu; 20 typedef struct _GtkCustomMenuClass GtkCustomMenuClass; 21 22 struct _GtkCustomMenu { 23 GtkMenu menu; 24 }; 25 26 struct _GtkCustomMenuClass { 27 GtkMenuClass parent_class; 28 }; 29 30 GtkWidget* gtk_custom_menu_new(); 31 32 typedef struct _GtkCustomMenuItem GtkCustomMenuItem; 33 typedef struct _GtkCustomMenuItemClass GtkCustomMenuItemClass; 34 35 struct _GtkCustomMenuItem { 36 GtkMenuItem menu_item; 37 }; 38 39 struct _GtkCustomMenuItemClass { 40 GtkMenuItemClass parent_class; 41 }; 42 43 GtkWidget* gtk_custom_menu_item_new(); 44 45 G_END_DECLS 46 47 #endif // CHROME_BROWSER_UI_LIBGTK2UI_CHROME_GTK_MENU_SUBCLASSES_H_ 48