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 11*bce40c02SAlfonso S. Siciliano #include <bsddialog.h> 12f499134dSBaptiste Daroussin #include <stdio.h> 13f499134dSBaptiste Daroussin #include <string.h> 14f499134dSBaptiste Daroussin 15f499134dSBaptiste Daroussin int main() 16f499134dSBaptiste Daroussin { 17263660c0SAlfonso Siciliano int output; 18263660c0SAlfonso Siciliano unsigned int i, j; 19f499134dSBaptiste Daroussin struct bsddialog_conf conf; 20f499134dSBaptiste Daroussin struct bsddialog_menuitem item; 21*bce40c02SAlfonso S. Siciliano struct bsddialog_menuitem sep1[1] = { 22*bce40c02SAlfonso S. Siciliano { "", true, 0, "Checklist", "(desc)", "" } 23*bce40c02SAlfonso S. Siciliano }; 24f499134dSBaptiste Daroussin struct bsddialog_menuitem check[5] = { 25f499134dSBaptiste Daroussin { "+", true, 0, "Name 1", "Desc 1", "Bottom Desc 1" }, 26f499134dSBaptiste Daroussin { "" , false, 0, "Name 2", "Desc 2", "Bottom Desc 2" }, 27f499134dSBaptiste Daroussin { "+", true, 0, "Name 3", "Desc 3", "Bottom Desc 3" }, 28f499134dSBaptiste Daroussin { "" , false, 0, "Name 4", "Desc 4", "Bottom Desc 4" }, 29f499134dSBaptiste Daroussin { "+", true, 0, "Name 5", "Desc 5", "Bottom Desc 5" } 30f499134dSBaptiste Daroussin }; 31*bce40c02SAlfonso S. Siciliano struct bsddialog_menuitem sep2[2] = { 32*bce40c02SAlfonso S. Siciliano { "", true, 0, "Radiolist", "(desc)", "" }, 33*bce40c02SAlfonso S. Siciliano { "", true, 0, "Subtitle", "(desc)", "" } 34f499134dSBaptiste Daroussin }; 35f499134dSBaptiste Daroussin struct bsddialog_menuitem radio[5] = { 36f499134dSBaptiste Daroussin { "", true, 0, "Name 1", "Desc 1", "Bottom Desc 1" }, 37f499134dSBaptiste Daroussin { "+", false, 0, "Name 2", "Desc 2", "Bottom Desc 2" }, 38f499134dSBaptiste Daroussin { "", false, 0, "Name 3", "Desc 3", "Bottom Desc 3" }, 39f499134dSBaptiste Daroussin { "+", false, 0, "Name 4", "Desc 4", "Bottom Desc 4" }, 40f499134dSBaptiste Daroussin { "", false, 0, "Name 5", "Desc 5", "Bottom Desc 5" } 41f499134dSBaptiste Daroussin }; 42*bce40c02SAlfonso S. Siciliano struct bsddialog_menugroup group[4] = { 43*bce40c02SAlfonso S. Siciliano { BSDDIALOG_SEPARATOR, 1, sep1 }, 44f499134dSBaptiste Daroussin { BSDDIALOG_CHECKLIST, 5, check }, 45*bce40c02SAlfonso S. Siciliano { BSDDIALOG_SEPARATOR, 2, sep2 }, 46f499134dSBaptiste Daroussin { BSDDIALOG_RADIOLIST, 5, radio } 47f499134dSBaptiste Daroussin }; 48f499134dSBaptiste Daroussin 49263660c0SAlfonso Siciliano if (bsddialog_init() == BSDDIALOG_ERROR) { 50263660c0SAlfonso Siciliano printf("Error: %s\n", bsddialog_geterror()); 51263660c0SAlfonso Siciliano return (1); 52263660c0SAlfonso Siciliano } 53263660c0SAlfonso Siciliano 54f499134dSBaptiste Daroussin bsddialog_initconf(&conf); 55263660c0SAlfonso Siciliano conf.title = "mixedlist"; 56*bce40c02SAlfonso S. Siciliano output = bsddialog_mixedlist(&conf, "Example", 20, 0, 13, 4, group, 57f499134dSBaptiste Daroussin NULL, NULL); 58f499134dSBaptiste Daroussin 59f499134dSBaptiste Daroussin bsddialog_end(); 60f499134dSBaptiste Daroussin 61263660c0SAlfonso Siciliano if (output == BSDDIALOG_ERROR) { 62263660c0SAlfonso Siciliano printf("Error: %s\n", bsddialog_geterror()); 63263660c0SAlfonso Siciliano return (1); 64263660c0SAlfonso Siciliano } 65263660c0SAlfonso Siciliano 66263660c0SAlfonso Siciliano if (output == BSDDIALOG_CANCEL) { 67263660c0SAlfonso Siciliano printf("Cancel\n"); 68263660c0SAlfonso Siciliano return (0); 69263660c0SAlfonso Siciliano } 70263660c0SAlfonso Siciliano 71f499134dSBaptiste Daroussin printf("Mixedlist:\n"); 72*bce40c02SAlfonso S. Siciliano for (i = 0; i < 4; i++) { 73f499134dSBaptiste Daroussin for (j = 0; j < group[i].nitems; j++) { 74f499134dSBaptiste Daroussin item = group[i].items[j]; 75f499134dSBaptiste Daroussin if (group[i].type == BSDDIALOG_SEPARATOR) 76f499134dSBaptiste Daroussin printf("----- %s -----\n", item.name); 77f499134dSBaptiste Daroussin else if (group[i].type == BSDDIALOG_RADIOLIST) 78263660c0SAlfonso Siciliano printf(" (%c) %s\n", 79263660c0SAlfonso Siciliano item.on ? '*' : ' ', item.name); 80263660c0SAlfonso Siciliano else /* BSDDIALOG_CHECKLIST */ 81263660c0SAlfonso Siciliano printf(" [%c] %s\n", 82263660c0SAlfonso Siciliano item.on ? 'X' : ' ', item.name); 83f499134dSBaptiste Daroussin } 84f499134dSBaptiste Daroussin } 85f499134dSBaptiste Daroussin 86263660c0SAlfonso Siciliano return (output); 87f499134dSBaptiste Daroussin }