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