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