xref: /freebsd/contrib/bsddialog/examples_library/form.c (revision f499134dd403eeeba8283e2640e2654c8da62430)
1*f499134dSBaptiste Daroussin /*-
2*f499134dSBaptiste Daroussin  * SPDX-License-Identifier: CC0-1.0
3*f499134dSBaptiste Daroussin  *
4*f499134dSBaptiste Daroussin  * Written in 2021 by Alfonso Sabato Siciliano.
5*f499134dSBaptiste Daroussin  * To the extent possible under law, the author has dedicated all copyright
6*f499134dSBaptiste Daroussin  * and related and neighboring rights to this software to the public domain
7*f499134dSBaptiste Daroussin  * worldwide. This software is distributed without any warranty, see:
8*f499134dSBaptiste Daroussin  *   <http://creativecommons.org/publicdomain/zero/1.0/>.
9*f499134dSBaptiste Daroussin  */
10*f499134dSBaptiste Daroussin 
11*f499134dSBaptiste Daroussin 
12*f499134dSBaptiste Daroussin #include <stdio.h>
13*f499134dSBaptiste Daroussin #include <stdlib.h>
14*f499134dSBaptiste Daroussin #include <string.h>
15*f499134dSBaptiste Daroussin 
16*f499134dSBaptiste Daroussin #include <bsddialog.h>
17*f499134dSBaptiste Daroussin 
18*f499134dSBaptiste Daroussin #define H   BSDDIALOG_FIELDHIDDEN
19*f499134dSBaptiste Daroussin #define RO  BSDDIALOG_FIELDREADONLY
20*f499134dSBaptiste Daroussin 
21*f499134dSBaptiste Daroussin int main()
22*f499134dSBaptiste Daroussin {
23*f499134dSBaptiste Daroussin 	int i, output;
24*f499134dSBaptiste Daroussin 	struct bsddialog_conf conf;
25*f499134dSBaptiste Daroussin 	struct bsddialog_formitem items[3] = {
26*f499134dSBaptiste Daroussin 		{"Input:",    1, 1, "value",     1, 11, 30, 50, NULL, 0,  "desc 1"},
27*f499134dSBaptiste Daroussin 		{"Input:",    2, 1, "read only", 2, 11, 30, 50, NULL, RO, "desc 2"},
28*f499134dSBaptiste Daroussin 		{"Password:", 3, 1, "",          3, 11, 30, 50, NULL, H,  "desc 3"}
29*f499134dSBaptiste Daroussin 	};
30*f499134dSBaptiste Daroussin 
31*f499134dSBaptiste Daroussin 	bsddialog_initconf(&conf);
32*f499134dSBaptiste Daroussin 	conf.title = "form";
33*f499134dSBaptiste Daroussin 	conf.form.securech = '*';
34*f499134dSBaptiste Daroussin 
35*f499134dSBaptiste Daroussin 	if (bsddialog_init() < 0)
36*f499134dSBaptiste Daroussin 		return -1;
37*f499134dSBaptiste Daroussin 
38*f499134dSBaptiste Daroussin 	output = bsddialog_form(&conf, "Example", 10, 50, 3, 3, items);
39*f499134dSBaptiste Daroussin 
40*f499134dSBaptiste Daroussin 	bsddialog_end();
41*f499134dSBaptiste Daroussin 
42*f499134dSBaptiste Daroussin 	if (output == BSDDIALOG_ERROR)
43*f499134dSBaptiste Daroussin 		printf("Error: %s", bsddialog_geterror());
44*f499134dSBaptiste Daroussin 
45*f499134dSBaptiste Daroussin 	for (i=0; i<3; i++) {
46*f499134dSBaptiste Daroussin 		printf("%s \"%s\"\n", items[i].label, items[i].value);
47*f499134dSBaptiste Daroussin 		free(items[i].value);
48*f499134dSBaptiste Daroussin 	}
49*f499134dSBaptiste Daroussin 
50*f499134dSBaptiste Daroussin 	return output;
51*f499134dSBaptiste Daroussin }
52