Add to git.
[monolith.git] / src / ml_form_radio_group.h
1 /* Monolith group of radio buttons.
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_form_radio_group.h,v 1.1 2002/08/30 14:28:48 rich Exp $
19  */
20
21 #ifndef ML_FORM_RADIO_GROUP_H
22 #define ML_FORM_RADIO_GROUP_H
23
24 #include "monolith.h"
25 #include "ml_form.h"
26
27 struct ml_form_radio_group;
28 typedef struct ml_form_radio_group *ml_form_radio_group;
29
30 struct ml_form_radio;
31
32 /* Function: new_ml_form_radio_group - monolith group of radio buttons widget
33  * Function: ml_form_radio_group_pack
34  *
35  * A radio group is a widget which contains a group of related radio
36  * buttons. You cannot use radio buttons "naked" in a form, but instead
37  * must embed related buttons inside one of these widgets.
38  *
39  * @code{new_ml_form_radio_group} creates a new group widget.
40  *
41  * @code{ml_form_radio_group_pack} packs a single widget inside the
42  * radio group widget. A radio group can only contain a single widget,
43  * so if you call pack again, it will forget the previous widget.
44  * It is recommended that you pack either a flow layout or a table
45  * layout directly inside the radio group, and then pack the actual
46  * radio buttons inside that.
47  *
48  * See also: @ref{new_ml_form(3)}, @ref{new_ml_form_radio(3)},
49  * @ref{ml_form_input_get_value(3)}.
50  */
51 extern ml_form_radio_group new_ml_form_radio_group (pool pool, ml_form form);
52 extern void ml_form_radio_group_pack (ml_form_radio_group w, ml_widget);
53
54 /* Radio buttons use this function to register themselves. It returns
55  * the name of the button.
56  */
57 extern const char *_ml_form_radio_group_register (ml_form_radio_group w, struct ml_form_radio *, const char *value);
58
59 #endif /* ML_FORM_RADIO_H */