1 /* GTK - The GIMP Toolkit
2  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3  * GtkToolbar copyright (C) Federico Mena
4  *
5  * Copyright (C) 2002 Anders Carlsson <andersca@gnome.org>
6  * Copyright (C) 2002 James Henstridge <james@daa.com.au>
7  * Copyright (C) 2003 Soeren Sandmann <sandmann@daimi.au.dk>
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 2 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
21  */
22 
23 /*
24  * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
25  * file for a list of people on the GTK+ Team.  See the ChangeLog
26  * files for a list of changes.  These files are distributed with
27  * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
28  */
29 
30 #ifndef __GTK_TOOLBAR_H__
31 #define __GTK_TOOLBAR_H__
32 
33 
34 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
35 #error "Only <gtk/gtk.h> can be included directly."
36 #endif
37 
38 #include <gtk/gtkcontainer.h>
39 #include <gtk/gtktoolitem.h>
40 
41 G_BEGIN_DECLS
42 
43 
44 #define GTK_TYPE_TOOLBAR            (gtk_toolbar_get_type ())
45 #define GTK_TOOLBAR(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOOLBAR, GtkToolbar))
46 #define GTK_TOOLBAR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TOOLBAR, GtkToolbarClass))
47 #define GTK_IS_TOOLBAR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TOOLBAR))
48 #define GTK_IS_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TOOLBAR))
49 #define GTK_TOOLBAR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TOOLBAR, GtkToolbarClass))
50 
51 /**
52  * GtkToolbarSpaceStyle:
53  * @GTK_TOOLBAR_SPACE_EMPTY: Use blank spacers.
54  * @GTK_TOOLBAR_SPACE_LINE: Use vertical lines for spacers.
55  *
56  * Whether spacers are vertical lines or just blank.
57  *
58  * Deprecated: 3.20
59  */
60 typedef enum
61 {
62   GTK_TOOLBAR_SPACE_EMPTY,
63   GTK_TOOLBAR_SPACE_LINE
64 } GtkToolbarSpaceStyle;
65 
66 typedef struct _GtkToolbar              GtkToolbar;
67 typedef struct _GtkToolbarPrivate       GtkToolbarPrivate;
68 typedef struct _GtkToolbarClass         GtkToolbarClass;
69 
70 struct _GtkToolbar
71 {
72   GtkContainer container;
73 
74   GtkToolbarPrivate *priv;
75 };
76 
77 struct _GtkToolbarClass
78 {
79   GtkContainerClass parent_class;
80 
81   /* signals */
82   void     (* orientation_changed) (GtkToolbar       *toolbar,
83 				    GtkOrientation    orientation);
84   void     (* style_changed)       (GtkToolbar       *toolbar,
85 				    GtkToolbarStyle   style);
86   gboolean (* popup_context_menu)  (GtkToolbar       *toolbar,
87 				    gint              x,
88 				    gint              y,
89 				    gint              button_number);
90 
91   /* Padding for future expansion */
92   void (*_gtk_reserved1) (void);
93   void (*_gtk_reserved2) (void);
94   void (*_gtk_reserved3) (void);
95   void (*_gtk_reserved4) (void);
96 };
97 
98 GDK_AVAILABLE_IN_ALL
99 GType           gtk_toolbar_get_type                (void) G_GNUC_CONST;
100 GDK_AVAILABLE_IN_ALL
101 GtkWidget *     gtk_toolbar_new                     (void);
102 
103 GDK_AVAILABLE_IN_ALL
104 void            gtk_toolbar_insert                  (GtkToolbar      *toolbar,
105 						     GtkToolItem     *item,
106 						     gint             pos);
107 
108 GDK_AVAILABLE_IN_ALL
109 gint            gtk_toolbar_get_item_index          (GtkToolbar      *toolbar,
110 						     GtkToolItem     *item);
111 GDK_AVAILABLE_IN_ALL
112 gint            gtk_toolbar_get_n_items             (GtkToolbar      *toolbar);
113 GDK_AVAILABLE_IN_ALL
114 GtkToolItem *   gtk_toolbar_get_nth_item            (GtkToolbar      *toolbar,
115 						     gint             n);
116 
117 GDK_AVAILABLE_IN_ALL
118 gboolean        gtk_toolbar_get_show_arrow          (GtkToolbar      *toolbar);
119 GDK_AVAILABLE_IN_ALL
120 void            gtk_toolbar_set_show_arrow          (GtkToolbar      *toolbar,
121 						     gboolean         show_arrow);
122 
123 GDK_AVAILABLE_IN_ALL
124 GtkToolbarStyle gtk_toolbar_get_style               (GtkToolbar      *toolbar);
125 GDK_AVAILABLE_IN_ALL
126 void            gtk_toolbar_set_style               (GtkToolbar      *toolbar,
127 						     GtkToolbarStyle  style);
128 GDK_AVAILABLE_IN_ALL
129 void            gtk_toolbar_unset_style             (GtkToolbar      *toolbar);
130 
131 GDK_AVAILABLE_IN_ALL
132 GtkIconSize     gtk_toolbar_get_icon_size           (GtkToolbar      *toolbar);
133 GDK_AVAILABLE_IN_ALL
134 void            gtk_toolbar_set_icon_size           (GtkToolbar      *toolbar,
135                                                      GtkIconSize      icon_size);
136 GDK_AVAILABLE_IN_ALL
137 void            gtk_toolbar_unset_icon_size         (GtkToolbar      *toolbar);
138 
139 GDK_AVAILABLE_IN_ALL
140 GtkReliefStyle  gtk_toolbar_get_relief_style        (GtkToolbar      *toolbar);
141 GDK_AVAILABLE_IN_ALL
142 gint            gtk_toolbar_get_drop_index          (GtkToolbar      *toolbar,
143 						     gint             x,
144 						     gint             y);
145 GDK_AVAILABLE_IN_ALL
146 void            gtk_toolbar_set_drop_highlight_item (GtkToolbar      *toolbar,
147 						     GtkToolItem     *tool_item,
148 						     gint             index_);
149 
150 
151 G_END_DECLS
152 
153 #endif /* __GTK_TOOLBAR_H__ */
154