Add to git.
[monolith.git] / src / ml_vertical_layout.h
1 /* Monolith vertical layout class.
2  * - by Richard W.M. Jones <rich@annexia.org>
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this library; if not, write to the Free
16  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17  *
18  * $Id: ml_vertical_layout.h,v 1.2 2003/01/12 22:12:42 rich Exp $
19  */
20
21 #ifndef ML_VERTICAL_LAYOUT_H
22 #define ML_VERTICAL_LAYOUT_H
23
24 #include <ml_widget.h>
25
26 struct ml_vertical_layout;
27 typedef struct ml_vertical_layout *ml_vertical_layout;
28
29 /* Function: new_ml_vertical_layout - monolith vertical_layout widget
30  * Function: ml_vertical_layout_push_back
31  * Function: ml_vertical_layout_pop_back
32  * Function: ml_vertical_layout_push_front
33  * Function: ml_vertical_layout_pop_front
34  * Function: ml_vertical_layout_get
35  * Function: ml_vertical_layout_insert
36  * Function: ml_vertical_layout_replace
37  * Function: ml_vertical_layout_erase
38  * Function: ml_vertical_layout_clear
39  * Function: ml_vertical_layout_size
40  * Function: ml_vertical_layout_pack
41  *
42  * A vertical layout widget is a simple type of layout which can be
43  * thought of as a specialised one-column table.
44  *
45  * @code{new_ml_vertical_layout} creates a new vertical layout widget.
46  *
47  * Underlying the vertical layout widget is a simple c2lib vector, and the
48  * other access functions use the same notation as the equivalent
49  * c2lib @code{vector_*} functions. Go to the SEE ALSO section
50  * below to see how to manipulate widgets within a vertical layout.
51  *
52  * @code{ml_vertical_layout_pack} is equivalent to
53  * @code{ml_vertical_layout_push_back}: it appends the widget to the
54  * end of the current vector of widgets.
55  *
56  * The following properties can be changed on vertical layouts (see
57  * @ref{ml_widget_set_property(3)}):
58  *
59  * @code{class}: The stylesheet class.
60  * See also: @ref{vector_push_back(3)}, @ref{vector_pop_back(3)},
61  * @ref{vector_push_front(3)}, @ref{vector_pop_front(3)},
62  * @ref{vector_get(3)}, @ref{vector_insert(3)}, @ref{vector_replace(3)},
63  * @ref{vector_erase(3)}, @ref{vector_clear(3)}, @ref{vector_size(3)}.
64  */
65 extern ml_vertical_layout new_ml_vertical_layout (pool pool);
66 extern void ml_vertical_layout_push_back (ml_vertical_layout, ml_widget);
67 extern ml_widget ml_vertical_layout_pop_back (ml_vertical_layout);
68 extern void ml_vertical_layout_push_front (ml_vertical_layout, ml_widget);
69 extern ml_widget ml_vertical_layout_pop_front (ml_vertical_layout);
70 extern ml_widget ml_vertical_layout_get (ml_vertical_layout, int i);
71 extern void ml_vertical_layout_insert (ml_vertical_layout, int i, ml_widget);
72 extern void ml_vertical_layout_replace (ml_vertical_layout, int i, ml_widget);
73 extern void ml_vertical_layout_erase (ml_vertical_layout, int i);
74 extern void ml_vertical_layout_clear (ml_vertical_layout);
75 extern int ml_vertical_layout_size (ml_vertical_layout);
76 extern void ml_vertical_layout_pack (ml_vertical_layout, ml_widget);
77
78 #endif /* ML_VERTICAL_LAYOUT_H */