1f499134dSBaptiste Daroussin /*-
2f499134dSBaptiste Daroussin * SPDX-License-Identifier: CC0-1.0
3f499134dSBaptiste Daroussin *
4f499134dSBaptiste Daroussin * Written in 2021 by Alfonso Sabato Siciliano.
5f499134dSBaptiste Daroussin * To the extent possible under law, the author has dedicated all copyright
6f499134dSBaptiste Daroussin * and related and neighboring rights to this software to the public domain
7f499134dSBaptiste Daroussin * worldwide. This software is distributed without any warranty, see:
8f499134dSBaptiste Daroussin * <http://creativecommons.org/publicdomain/zero/1.0/>.
9f499134dSBaptiste Daroussin */
10f499134dSBaptiste Daroussin
11bce40c02SAlfonso S. Siciliano #include <bsddialog.h>
12f499134dSBaptiste Daroussin #include <stdio.h>
13f499134dSBaptiste Daroussin
main()14f499134dSBaptiste Daroussin int main()
15f499134dSBaptiste Daroussin {
16263660c0SAlfonso Siciliano int output;
17263660c0SAlfonso Siciliano unsigned int i, j;
18f499134dSBaptiste Daroussin struct bsddialog_conf conf;
19f499134dSBaptiste Daroussin struct bsddialog_menuitem item;
20bce40c02SAlfonso S. Siciliano struct bsddialog_menuitem sep1[1] = {
21bce40c02SAlfonso S. Siciliano { "", true, 0, "Checklist", "(desc)", "" }
22bce40c02SAlfonso S. Siciliano };
23f499134dSBaptiste Daroussin struct bsddialog_menuitem check[5] = {
24f499134dSBaptiste Daroussin { "+", true, 0, "Name 1", "Desc 1", "Bottom Desc 1" },
25f499134dSBaptiste Daroussin { "" , false, 0, "Name 2", "Desc 2", "Bottom Desc 2" },
26f499134dSBaptiste Daroussin { "+", true, 0, "Name 3", "Desc 3", "Bottom Desc 3" },
27f499134dSBaptiste Daroussin { "" , false, 0, "Name 4", "Desc 4", "Bottom Desc 4" },
28f499134dSBaptiste Daroussin { "+", true, 0, "Name 5", "Desc 5", "Bottom Desc 5" }
29f499134dSBaptiste Daroussin };
30bce40c02SAlfonso S. Siciliano struct bsddialog_menuitem sep2[2] = {
31bce40c02SAlfonso S. Siciliano { "", true, 0, "Radiolist", "(desc)", "" },
32bce40c02SAlfonso S. Siciliano { "", true, 0, "Subtitle", "(desc)", "" }
33f499134dSBaptiste Daroussin };
34f499134dSBaptiste Daroussin struct bsddialog_menuitem radio[5] = {
35f499134dSBaptiste Daroussin { "", true, 0, "Name 1", "Desc 1", "Bottom Desc 1" },
36f499134dSBaptiste Daroussin { "+", false, 0, "Name 2", "Desc 2", "Bottom Desc 2" },
37f499134dSBaptiste Daroussin { "", false, 0, "Name 3", "Desc 3", "Bottom Desc 3" },
38f499134dSBaptiste Daroussin { "+", false, 0, "Name 4", "Desc 4", "Bottom Desc 4" },
39f499134dSBaptiste Daroussin { "", false, 0, "Name 5", "Desc 5", "Bottom Desc 5" }
40f499134dSBaptiste Daroussin };
41bce40c02SAlfonso S. Siciliano struct bsddialog_menugroup group[4] = {
42*61ba55bcSBaptiste Daroussin { BSDDIALOG_SEPARATOR, 1, sep1, 0 },
43*61ba55bcSBaptiste Daroussin { BSDDIALOG_CHECKLIST, 5, check, 0 },
44*61ba55bcSBaptiste Daroussin { BSDDIALOG_SEPARATOR, 2, sep2, 0 },
45*61ba55bcSBaptiste Daroussin { BSDDIALOG_RADIOLIST, 5, radio, 0 }
46f499134dSBaptiste Daroussin };
47f499134dSBaptiste Daroussin
48263660c0SAlfonso Siciliano if (bsddialog_init() == BSDDIALOG_ERROR) {
49263660c0SAlfonso Siciliano printf("Error: %s\n", bsddialog_geterror());
50263660c0SAlfonso Siciliano return (1);
51263660c0SAlfonso Siciliano }
52f499134dSBaptiste Daroussin bsddialog_initconf(&conf);
53263660c0SAlfonso Siciliano conf.title = "mixedlist";
54bce40c02SAlfonso S. Siciliano output = bsddialog_mixedlist(&conf, "Example", 20, 0, 13, 4, group,
55f499134dSBaptiste Daroussin NULL, NULL);
56f499134dSBaptiste Daroussin bsddialog_end();
57263660c0SAlfonso Siciliano if (output == BSDDIALOG_ERROR) {
58263660c0SAlfonso Siciliano printf("Error: %s\n", bsddialog_geterror());
59263660c0SAlfonso Siciliano return (1);
60263660c0SAlfonso Siciliano }
61263660c0SAlfonso Siciliano
62f499134dSBaptiste Daroussin printf("Mixedlist:\n");
63bce40c02SAlfonso S. Siciliano for (i = 0; i < 4; i++) {
64f499134dSBaptiste Daroussin for (j = 0; j < group[i].nitems; j++) {
65f499134dSBaptiste Daroussin item = group[i].items[j];
66f499134dSBaptiste Daroussin if (group[i].type == BSDDIALOG_SEPARATOR)
67f499134dSBaptiste Daroussin printf("----- %s -----\n", item.name);
68f499134dSBaptiste Daroussin else if (group[i].type == BSDDIALOG_RADIOLIST)
69263660c0SAlfonso Siciliano printf(" (%c) %s\n",
70263660c0SAlfonso Siciliano item.on ? '*' : ' ', item.name);
71263660c0SAlfonso Siciliano else /* BSDDIALOG_CHECKLIST */
72263660c0SAlfonso Siciliano printf(" [%c] %s\n",
73263660c0SAlfonso Siciliano item.on ? 'X' : ' ', item.name);
74f499134dSBaptiste Daroussin }
75f499134dSBaptiste Daroussin }
76f499134dSBaptiste Daroussin
77*61ba55bcSBaptiste Daroussin return (0);
78f499134dSBaptiste Daroussin }
79