51 lines
2 KiB
C
51 lines
2 KiB
C
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef CHROME_BROWSER_UI_GTK_GTK_CUSTOM_MENU_H_
|
|
#define CHROME_BROWSER_UI_GTK_GTK_CUSTOM_MENU_H_
|
|
|
|
// GtkCustomMenu is a GtkMenu subclass that can contain, and collaborates with,
|
|
// GtkCustomMenuItem instances. GtkCustomMenuItem is a GtkMenuItem that can
|
|
// have buttons and other normal widgets embeded in it. GtkCustomMenu exists
|
|
// only to override most of the button/motion/move callback functions so
|
|
// that the normal GtkMenu implementation doesn't handle events related to
|
|
// GtkCustomMenuItem items.
|
|
//
|
|
// For a more through overview of this system, see the comments in
|
|
// gtk_custom_menu_item.h.
|
|
|
|
#include <gtk/gtk.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
#define GTK_TYPE_CUSTOM_MENU \
|
|
(gtk_custom_menu_get_type())
|
|
#define GTK_CUSTOM_MENU(obj) \
|
|
(G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_CUSTOM_MENU, GtkCustomMenu))
|
|
#define GTK_CUSTOM_MENU_CLASS(klass) \
|
|
(G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_CUSTOM_MENU, GtkCustomMenuClass))
|
|
#define GTK_IS_CUSTOM_MENU(obj) \
|
|
(G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_CUSTOM_MENU))
|
|
#define GTK_IS_CUSTOM_MENU_CLASS(klass) \
|
|
(G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_CUSTOM_MENU))
|
|
#define GTK_CUSTOM_MENU_GET_CLASS(obj) \
|
|
(G_TYPE_INSTANCE_GET_CLASS((obj), GTK_TYPE_CUSTOM_MENU, GtkCustomMenuClass))
|
|
|
|
typedef struct _GtkCustomMenu GtkCustomMenu;
|
|
typedef struct _GtkCustomMenuClass GtkCustomMenuClass;
|
|
|
|
struct _GtkCustomMenu {
|
|
GtkMenu menu;
|
|
};
|
|
|
|
struct _GtkCustomMenuClass {
|
|
GtkMenuClass parent_class;
|
|
};
|
|
|
|
GType gtk_custom_menu_get_type(void) G_GNUC_CONST;
|
|
GtkWidget* gtk_custom_menu_new();
|
|
|
|
G_END_DECLS
|
|
|
|
#endif // CHROME_BROWSER_UI_GTK_GTK_CUSTOM_MENU_H_
|