1 /* GTK - The GIMP Toolkit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
4 * GtkWrapBox: Wrapping box widget
5 * Copyright (C) 1999 Tim Janik
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library 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.
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 * Library General Public License for more details.
17 * You should have received a copy of the GNU Library General Public
18 * License along with this library; if not, write to the
19 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 * Boston, MA 02111-1307, USA.
23 #ifndef __GTK_WRAP_BOX_H__
24 #define __GTK_WRAP_BOX_H__
27 #include <gtk/gtkcontainer.h>
32 /* --- type macros --- */
33 #define GTK_TYPE_WRAP_BOX (gtk_wrap_box_get_type ())
34 #define GTK_WRAP_BOX(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_WRAP_BOX, GtkWrapBox))
35 #define GTK_WRAP_BOX_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_WRAP_BOX, GtkWrapBoxClass))
36 #define GTK_IS_WRAP_BOX(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_WRAP_BOX))
37 #define GTK_IS_WRAP_BOX_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_WRAP_BOX))
38 #define GTK_WRAP_BOX_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_WRAP_BOX, GtkWrapBoxClass))
41 /* --- typedefs --- */
42 typedef struct _GtkWrapBox GtkWrapBox
;
43 typedef struct _GtkWrapBoxClass GtkWrapBoxClass
;
44 typedef struct _GtkWrapBoxChild GtkWrapBoxChild
;
46 /* --- GtkWrapBox --- */
49 GtkContainer container
;
51 guint homogeneous
: 1;
53 guint line_justify
: 4;
57 GtkWrapBoxChild
*children
;
58 gfloat aspect_ratio
; /* 1/256..256 */
61 struct _GtkWrapBoxClass
63 GtkContainerClass parent_class
;
65 GSList
* (*rlist_line_children
) (GtkWrapBox
*wbox
,
66 GtkWrapBoxChild
**child_p
,
68 guint
*max_child_size
,
69 gboolean
*expand_line
);
71 struct _GtkWrapBoxChild
80 GtkWrapBoxChild
*next
;
82 #define GTK_JUSTIFY_TOP GTK_JUSTIFY_LEFT
83 #define GTK_JUSTIFY_BOTTOM GTK_JUSTIFY_RIGHT
86 /* --- prototypes --- */
87 GtkType
gtk_wrap_box_get_type (void) G_GNUC_CONST
;
88 void gtk_wrap_box_set_homogeneous (GtkWrapBox
*wbox
,
89 gboolean homogeneous
);
90 void gtk_wrap_box_set_hspacing (GtkWrapBox
*wbox
,
92 void gtk_wrap_box_set_vspacing (GtkWrapBox
*wbox
,
94 void gtk_wrap_box_set_justify (GtkWrapBox
*wbox
,
95 GtkJustification justify
);
96 void gtk_wrap_box_set_line_justify (GtkWrapBox
*wbox
,
97 GtkJustification line_justify
);
98 void gtk_wrap_box_set_aspect_ratio (GtkWrapBox
*wbox
,
100 void gtk_wrap_box_pack (GtkWrapBox
*wbox
,
106 void gtk_wrap_box_pack_wrapped (GtkWrapBox
*wbox
,
113 void gtk_wrap_box_reorder_child (GtkWrapBox
*wbox
,
116 void gtk_wrap_box_query_child_packing (GtkWrapBox
*wbox
,
123 void gtk_wrap_box_set_child_packing (GtkWrapBox
*wbox
,
130 guint
* gtk_wrap_box_query_line_lengths (GtkWrapBox
*wbox
,
136 #endif /* __GTK_WRAP_BOX_H__ */