1 /* Monolith horizontal 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_horizontal_layout.h,v 1.1 2002/11/03 09:39:46 rich Exp $
21 #ifndef ML_HORIZONTAL_LAYOUT_H
22 #define ML_HORIZONTAL_LAYOUT_H
24 #include <ml_widget.h>
26 struct ml_horizontal_layout;
27 typedef struct ml_horizontal_layout *ml_horizontal_layout;
29 /* Function: new_ml_horizontal_layout - monolith horizontal_layout widget
30 * Function: ml_horizontal_layout_push_back
31 * Function: ml_horizontal_layout_pop_back
32 * Function: ml_horizontal_layout_push_front
33 * Function: ml_horizontal_layout_pop_front
34 * Function: ml_horizontal_layout_get
35 * Function: ml_horizontal_layout_insert
36 * Function: ml_horizontal_layout_replace
37 * Function: ml_horizontal_layout_erase
38 * Function: ml_horizontal_layout_clear
39 * Function: ml_horizontal_layout_size
40 * Function: ml_horizontal_layout_pack
42 * A horizontal layout widget is a simple type of layout which can be
43 * thought of as a specialised one-row table.
45 * @code{new_ml_horizontal_layout} creates a new horizontal layout widget.
47 * Underlying the horizontal 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 horizontal layout.
52 * @code{ml_horizontal_layout_pack} is equivalent to
53 * @code{ml_horizontal_layout_push_back}: it appends the widget to the
54 * end of the current vector of widgets.
56 * See also: @ref{vector_push_back(3)}, @ref{vector_pop_back(3)},
57 * @ref{vector_push_front(3)}, @ref{vector_pop_front(3)},
58 * @ref{vector_get(3)}, @ref{vector_insert(3)}, @ref{vector_replace(3)},
59 * @ref{vector_erase(3)}, @ref{vector_clear(3)}, @ref{vector_size(3)}.
61 extern ml_horizontal_layout new_ml_horizontal_layout (pool pool);
62 extern void ml_horizontal_layout_push_back (ml_horizontal_layout, ml_widget);
63 extern ml_widget ml_horizontal_layout_pop_back (ml_horizontal_layout);
64 extern void ml_horizontal_layout_push_front (ml_horizontal_layout, ml_widget);
65 extern ml_widget ml_horizontal_layout_pop_front (ml_horizontal_layout);
66 extern ml_widget ml_horizontal_layout_get (ml_horizontal_layout, int i);
67 extern void ml_horizontal_layout_insert (ml_horizontal_layout, int i, ml_widget);
68 extern void ml_horizontal_layout_replace (ml_horizontal_layout, int i, ml_widget);
69 extern void ml_horizontal_layout_erase (ml_horizontal_layout, int i);
70 extern void ml_horizontal_layout_clear (ml_horizontal_layout);
71 extern int ml_horizontal_layout_size (ml_horizontal_layout);
72 extern void ml_horizontal_layout_pack (ml_horizontal_layout, ml_widget);
74 #endif /* ML_HORIZONTAL_LAYOUT_H */