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 <[email protected]>
6 * Copyright (C) 2002 James Henstridge <[email protected]>
7 * Copyright (C) 2003 Soeren Sandmann <[email protected]>
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
41G_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 */
60typedef enum
61{
62 GTK_TOOLBAR_SPACE_EMPTY,
63 GTK_TOOLBAR_SPACE_LINE
64} GtkToolbarSpaceStyle;
65
66typedef struct _GtkToolbar GtkToolbar;
67typedef struct _GtkToolbarPrivate GtkToolbarPrivate;
68typedef struct _GtkToolbarClass GtkToolbarClass;
69
70struct _GtkToolbar
71{
72 GtkContainer container;
73
74 GtkToolbarPrivate *priv;
75};
76
77struct _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
98GDK_AVAILABLE_IN_ALL
99GType gtk_toolbar_get_type (void) G_GNUC_CONST;
100GDK_AVAILABLE_IN_ALL
101GtkWidget * gtk_toolbar_new (void);
102
103GDK_AVAILABLE_IN_ALL
104void gtk_toolbar_insert (GtkToolbar *toolbar,
105 GtkToolItem *item,
106 gint pos);
107
108GDK_AVAILABLE_IN_ALL
109gint gtk_toolbar_get_item_index (GtkToolbar *toolbar,
110 GtkToolItem *item);
111GDK_AVAILABLE_IN_ALL
112gint gtk_toolbar_get_n_items (GtkToolbar *toolbar);
113GDK_AVAILABLE_IN_ALL
114GtkToolItem * gtk_toolbar_get_nth_item (GtkToolbar *toolbar,
115 gint n);
116
117GDK_AVAILABLE_IN_ALL
118gboolean gtk_toolbar_get_show_arrow (GtkToolbar *toolbar);
119GDK_AVAILABLE_IN_ALL
120void gtk_toolbar_set_show_arrow (GtkToolbar *toolbar,
121 gboolean show_arrow);
122
123GDK_AVAILABLE_IN_ALL
124GtkToolbarStyle gtk_toolbar_get_style (GtkToolbar *toolbar);
125GDK_AVAILABLE_IN_ALL
126void gtk_toolbar_set_style (GtkToolbar *toolbar,
127 GtkToolbarStyle style);
128GDK_AVAILABLE_IN_ALL
129void gtk_toolbar_unset_style (GtkToolbar *toolbar);
130
131GDK_AVAILABLE_IN_ALL
132GtkIconSize gtk_toolbar_get_icon_size (GtkToolbar *toolbar);
133GDK_AVAILABLE_IN_ALL
134void gtk_toolbar_set_icon_size (GtkToolbar *toolbar,
135 GtkIconSize icon_size);
136GDK_AVAILABLE_IN_ALL
137void gtk_toolbar_unset_icon_size (GtkToolbar *toolbar);
138
139GDK_AVAILABLE_IN_ALL
140GtkReliefStyle gtk_toolbar_get_relief_style (GtkToolbar *toolbar);
141GDK_AVAILABLE_IN_ALL
142gint gtk_toolbar_get_drop_index (GtkToolbar *toolbar,
143 gint x,
144 gint y);
145GDK_AVAILABLE_IN_ALL
146void gtk_toolbar_set_drop_highlight_item (GtkToolbar *toolbar,
147 GtkToolItem *tool_item,
148 gint index_);
149
150
151G_END_DECLS
152
153#endif /* __GTK_TOOLBAR_H__ */
154