]> Pileus Git - ~andy/gtk/blob - gtk/gtkmenubutton.h
stylecontext: Do invalidation on first resize container
[~andy/gtk] / gtk / gtkmenubutton.h
1 /* GTK - The GIMP Toolkit
2  *
3  * Copyright (C) 2003 Ricardo Fernandez Pascual
4  * Copyright (C) 2004 Paolo Borelli
5  * Copyright (C) 2012 Bastien Nocera
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 #ifndef __GTK_MENU_BUTTON_H__
22 #define __GTK_MENU_BUTTON_H__
23
24 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
25 #error "Only <gtk/gtk.h> can be included directly."
26 #endif
27
28 #include <gtk/gtktogglebutton.h>
29 #include <gtk/gtkmenu.h>
30
31 G_BEGIN_DECLS
32
33 #define GTK_TYPE_MENU_BUTTON            (gtk_menu_button_get_type ())
34 #define GTK_MENU_BUTTON(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_MENU_BUTTON, GtkMenuButton))
35 #define GTK_MENU_BUTTON_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MENU_BUTTON, GtkMenuButtonClass))
36 #define GTK_IS_MENU_BUTTON(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_MENU_BUTTON))
37 #define GTK_IS_MENU_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MENU_BUTTON))
38 #define GTK_MENU_BUTTON_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MENU_BUTTON, GtkMenuButtonClass))
39
40 typedef struct _GtkMenuButton        GtkMenuButton;
41 typedef struct _GtkMenuButtonClass   GtkMenuButtonClass;
42 typedef struct _GtkMenuButtonPrivate GtkMenuButtonPrivate;
43
44 struct _GtkMenuButton
45 {
46   GtkToggleButton parent;
47
48   /*< private >*/
49   GtkMenuButtonPrivate *priv;
50 };
51
52 struct _GtkMenuButtonClass
53 {
54   GtkToggleButtonClass parent_class;
55
56   /* Padding for future expansion */
57   void (*_gtk_reserved1) (void);
58   void (*_gtk_reserved2) (void);
59   void (*_gtk_reserved3) (void);
60   void (*_gtk_reserved4) (void);
61 };
62
63 GDK_AVAILABLE_IN_3_6
64 GType        gtk_menu_button_get_type       (void) G_GNUC_CONST;
65 GDK_AVAILABLE_IN_3_6
66 GtkWidget   *gtk_menu_button_new            (void);
67
68 GDK_AVAILABLE_IN_3_6
69 void         gtk_menu_button_set_popup      (GtkMenuButton *menu_button,
70                                              GtkWidget     *popup);
71 GDK_AVAILABLE_IN_3_6
72 GtkMenu     *gtk_menu_button_get_popup      (GtkMenuButton *menu_button);
73
74 GDK_AVAILABLE_IN_3_6
75 void         gtk_menu_button_set_direction  (GtkMenuButton *menu_button,
76                                              GtkArrowType   direction);
77 GDK_AVAILABLE_IN_3_6
78 GtkArrowType gtk_menu_button_get_direction  (GtkMenuButton *menu_button);
79
80 GDK_AVAILABLE_IN_3_6
81 void         gtk_menu_button_set_menu_model (GtkMenuButton *menu_button,
82                                              GMenuModel    *menu_model);
83 GDK_AVAILABLE_IN_3_6
84 GMenuModel  *gtk_menu_button_get_menu_model (GtkMenuButton *menu_button);
85
86 GDK_AVAILABLE_IN_3_6
87 void         gtk_menu_button_set_align_widget (GtkMenuButton *menu_button,
88                                                GtkWidget     *align_widget);
89 GDK_AVAILABLE_IN_3_6
90 GtkWidget   *gtk_menu_button_get_align_widget (GtkMenuButton *menu_button);
91
92 G_END_DECLS
93
94 #endif /* __GTK_MENU_BUTTON_H__ */