1 /* Monolith vertical layout class.
2 * - by Richard W.M. Jones <rich@annexia.org>
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.
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.
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.
18 * $Id: ml_vertical_layout.h,v 1.2 2003/01/12 22:12:42 rich Exp $
21 #ifndef ML_VERTICAL_LAYOUT_H
22 #define ML_VERTICAL_LAYOUT_H
24 #include <ml_widget.h>
26 struct ml_vertical_layout;
27 typedef struct ml_vertical_layout *ml_vertical_layout;
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
42 * A vertical layout widget is a simple type of layout which can be
43 * thought of as a specialised one-column table.
45 * @code{new_ml_vertical_layout} creates a new vertical layout widget.
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.
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.
56 * The following properties can be changed on vertical layouts (see
57 * @ref{ml_widget_set_property(3)}):
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)}.
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);
78 #endif /* ML_VERTICAL_LAYOUT_H */