]> Pileus Git - ~andy/gtk/blob - gtk/gtktoolbar.h
(James A <jamesa@demon.net> : gtk-jamesa-980511-4.patch)
[~andy/gtk] / gtk / gtktoolbar.h
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  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public
16  * License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18  * Boston, MA 02111-1307, USA.
19  */
20
21 #ifndef __GTK_TOOLBAR_H__
22 #define __GTK_TOOLBAR_H__
23
24
25 #include <gdk/gdk.h>
26 #include <gtk/gtkcontainer.h>
27 #include <gtk/gtkenums.h>
28 #include <gtk/gtkpixmap.h>
29 #include <gtk/gtksignal.h>
30 #include <gtk/gtktooltips.h>
31
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif /* __cplusplus */
36
37
38 #define GTK_TOOLBAR(obj)         GTK_CHECK_CAST (obj, gtk_toolbar_get_type (), GtkToolbar)
39 #define GTK_TOOLBAR_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_toolbar_get_type (), GtkToolbarClass)
40 #define GTK_IS_TOOLBAR(obj)      GTK_CHECK_TYPE (obj, gtk_toolbar_get_type ())
41
42 enum _GtkToolbarChildType
43 {
44   GTK_TOOLBAR_CHILD_SPACE,
45   GTK_TOOLBAR_CHILD_BUTTON,
46   GTK_TOOLBAR_CHILD_TOGGLEBUTTON,
47   GTK_TOOLBAR_CHILD_RADIOBUTTON,
48   GTK_TOOLBAR_CHILD_WIDGET
49 };
50
51 typedef enum   _GtkToolbarChildType  GtkToolbarChildType;
52 typedef struct _GtkToolbarChild      GtkToolbarChild;
53 typedef struct _GtkToolbar           GtkToolbar;
54 typedef struct _GtkToolbarClass      GtkToolbarClass;
55
56 struct _GtkToolbarChild
57 {
58   GtkToolbarChildType type;
59   GtkWidget *widget;
60   GtkWidget *icon;
61   GtkWidget *label;
62 };
63
64 struct _GtkToolbar
65 {
66   GtkContainer container;
67
68   gint             num_children;
69   GList           *children;
70   GtkOrientation   orientation;
71   GtkToolbarStyle  style;
72   gint             space_size; /* big optional space between buttons */
73
74   GtkTooltips     *tooltips;
75
76   gint             button_maxw;
77   gint             button_maxh;
78   GtkReliefStyle   relief;
79 };
80
81 struct _GtkToolbarClass
82 {
83   GtkContainerClass parent_class;
84
85   void (* orientation_changed) (GtkToolbar      *toolbar,
86                                 GtkOrientation   orientation);
87   void (* style_changed)       (GtkToolbar      *toolbar,
88                                 GtkToolbarStyle  style);
89 };
90
91
92 guint      gtk_toolbar_get_type        (void);
93 GtkWidget *gtk_toolbar_new             (GtkOrientation   orientation,
94                                         GtkToolbarStyle  style);
95
96 /* Simple button items */
97 GtkWidget *gtk_toolbar_append_item     (GtkToolbar      *toolbar,
98                                         const char      *text,
99                                         const char      *tooltip_text,
100                                         const char      *tooltip_private_text,
101                                         GtkWidget       *icon,
102                                         GtkSignalFunc    callback,
103                                         gpointer         user_data);
104 GtkWidget *gtk_toolbar_prepend_item    (GtkToolbar      *toolbar,
105                                         const char      *text,
106                                         const char      *tooltip_text,
107                                         const char      *tooltip_private_text,
108                                         GtkWidget       *icon,
109                                         GtkSignalFunc    callback,
110                                         gpointer         user_data);
111 GtkWidget *gtk_toolbar_insert_item     (GtkToolbar      *toolbar,
112                                         const char      *text,
113                                         const char      *tooltip_text,
114                                         const char      *tooltip_private_text,
115                                         GtkWidget       *icon,
116                                         GtkSignalFunc    callback,
117                                         gpointer         user_data,
118                                         gint             position);
119
120 /* Space Items */
121 void       gtk_toolbar_append_space    (GtkToolbar      *toolbar);
122 void       gtk_toolbar_prepend_space   (GtkToolbar      *toolbar);
123 void       gtk_toolbar_insert_space    (GtkToolbar      *toolbar,
124                                         gint             position);
125
126 /* Any element type */
127 GtkWidget *gtk_toolbar_append_element  (GtkToolbar      *toolbar,
128                                         GtkToolbarChildType type,
129                                         GtkWidget       *widget,
130                                         const char      *text,
131                                         const char      *tooltip_text,
132                                         const char      *tooltip_private_text,
133                                         GtkWidget       *icon,
134                                         GtkSignalFunc    callback,
135                                         gpointer         user_data);
136
137 GtkWidget *gtk_toolbar_prepend_element (GtkToolbar      *toolbar,
138                                         GtkToolbarChildType type,
139                                         GtkWidget       *widget,
140                                         const char      *text,
141                                         const char      *tooltip_text,
142                                         const char      *tooltip_private_text,
143                                         GtkWidget       *icon,
144                                         GtkSignalFunc    callback,
145                                         gpointer         user_data);
146
147 GtkWidget *gtk_toolbar_insert_element  (GtkToolbar      *toolbar,
148                                         GtkToolbarChildType type,
149                                         GtkWidget       *widget,
150                                         const char      *text,
151                                         const char      *tooltip_text,
152                                         const char      *tooltip_private_text,
153                                         GtkWidget       *icon,
154                                         GtkSignalFunc    callback,
155                                         gpointer         user_data,
156                                         gint             position);
157
158 /* Generic Widgets */
159 void       gtk_toolbar_append_widget   (GtkToolbar      *toolbar,
160                                         GtkWidget       *widget,
161                                         const char      *tooltip_text,
162                                         const char      *tooltip_private_text);
163 void       gtk_toolbar_prepend_widget  (GtkToolbar      *toolbar,
164                                         GtkWidget       *widget,
165                                         const char      *tooltip_text,
166                                         const char      *tooltip_private_text);
167 void       gtk_toolbar_insert_widget   (GtkToolbar      *toolbar,
168                                         GtkWidget       *widget,
169                                         const char      *tooltip_text,
170                                         const char      *tooltip_private_text,
171                                         gint             position);
172
173 /* Style functions */
174 void       gtk_toolbar_set_orientation (GtkToolbar      *toolbar,
175                                         GtkOrientation   orientation);
176 void       gtk_toolbar_set_style       (GtkToolbar      *toolbar,
177                                         GtkToolbarStyle  style);
178 void       gtk_toolbar_set_space_size  (GtkToolbar      *toolbar,
179                                         gint             space_size);
180 void       gtk_toolbar_set_tooltips    (GtkToolbar      *toolbar,
181                                         gint             enable);
182 void       gtk_toolbar_set_button_relief      (GtkToolbar      *toolbar,
183                                         GtkReliefStyle   relief);
184 GtkReliefStyle gtk_toolbar_get_button_relief  (GtkToolbar      *toolbar);
185
186
187 #ifdef __cplusplus
188 }
189 #endif /* __cplusplus */
190
191 #endif /* __GTK_TOOLBAR_H__ */