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 #include <stdio.h> 12*f499134dSBaptiste Daroussin #include <string.h> 13*f499134dSBaptiste Daroussin 14*f499134dSBaptiste Daroussin #include <bsddialog.h> 15*f499134dSBaptiste Daroussin 16*f499134dSBaptiste Daroussin int main() 17*f499134dSBaptiste Daroussin { 18*f499134dSBaptiste Daroussin int i, j, output; 19*f499134dSBaptiste Daroussin struct bsddialog_conf conf; 20*f499134dSBaptiste Daroussin struct bsddialog_menuitem item; 21*f499134dSBaptiste Daroussin struct bsddialog_menuitem check[5] = { 22*f499134dSBaptiste Daroussin { "+", true, 0, "Name 1", "Desc 1", "Bottom Desc 1" }, 23*f499134dSBaptiste Daroussin { "" , false, 0, "Name 2", "Desc 2", "Bottom Desc 2" }, 24*f499134dSBaptiste Daroussin { "+", true, 0, "Name 3", "Desc 3", "Bottom Desc 3" }, 25*f499134dSBaptiste Daroussin { "" , false, 0, "Name 4", "Desc 4", "Bottom Desc 4" }, 26*f499134dSBaptiste Daroussin { "+", true, 0, "Name 5", "Desc 5", "Bottom Desc 5" } 27*f499134dSBaptiste Daroussin }; 28*f499134dSBaptiste Daroussin struct bsddialog_menuitem sep[1] = { 29*f499134dSBaptiste Daroussin { "", true, 0, "Radiolist", "(desc)", "" } 30*f499134dSBaptiste Daroussin }; 31*f499134dSBaptiste Daroussin struct bsddialog_menuitem radio[5] = { 32*f499134dSBaptiste Daroussin { "", true, 0, "Name 1", "Desc 1", "Bottom Desc 1" }, 33*f499134dSBaptiste Daroussin { "+", false, 0, "Name 2", "Desc 2", "Bottom Desc 2" }, 34*f499134dSBaptiste Daroussin { "", false, 0, "Name 3", "Desc 3", "Bottom Desc 3" }, 35*f499134dSBaptiste Daroussin { "+", false, 0, "Name 4", "Desc 4", "Bottom Desc 4" }, 36*f499134dSBaptiste Daroussin { "", false, 0, "Name 5", "Desc 5", "Bottom Desc 5" } 37*f499134dSBaptiste Daroussin }; 38*f499134dSBaptiste Daroussin struct bsddialog_menugroup group[3] = { 39*f499134dSBaptiste Daroussin { BSDDIALOG_CHECKLIST, 5, check }, 40*f499134dSBaptiste Daroussin { BSDDIALOG_SEPARATOR, 1, sep }, 41*f499134dSBaptiste Daroussin { BSDDIALOG_RADIOLIST, 5, radio } 42*f499134dSBaptiste Daroussin }; 43*f499134dSBaptiste Daroussin 44*f499134dSBaptiste Daroussin bsddialog_initconf(&conf); 45*f499134dSBaptiste Daroussin conf.title = "mixedmenu"; 46*f499134dSBaptiste Daroussin 47*f499134dSBaptiste Daroussin if (bsddialog_init() < 0) 48*f499134dSBaptiste Daroussin return -1; 49*f499134dSBaptiste Daroussin 50*f499134dSBaptiste Daroussin output = bsddialog_mixedlist(&conf, "dialog4ports", 20, 30, 11, 3, group, 51*f499134dSBaptiste Daroussin NULL,NULL); 52*f499134dSBaptiste Daroussin 53*f499134dSBaptiste Daroussin bsddialog_end(); 54*f499134dSBaptiste Daroussin 55*f499134dSBaptiste Daroussin printf("Mixedlist:\n"); 56*f499134dSBaptiste Daroussin for (i=0; i<3; i++) { 57*f499134dSBaptiste Daroussin for (j=0; j<group[i].nitems; j++) { 58*f499134dSBaptiste Daroussin item = group[i].items[j]; 59*f499134dSBaptiste Daroussin if (group[i].type == BSDDIALOG_SEPARATOR) 60*f499134dSBaptiste Daroussin printf("----- %s -----\n", item.name); 61*f499134dSBaptiste Daroussin else if (group[i].type == BSDDIALOG_RADIOLIST) 62*f499134dSBaptiste Daroussin printf(" (%c) %s\n", item.on ? '*' : ' ', item.name); 63*f499134dSBaptiste Daroussin else /* BSDDIALOG_PORTCHECKLIST */ 64*f499134dSBaptiste Daroussin printf(" [%c] %s\n", item.on ? 'X' : ' ', item.name); 65*f499134dSBaptiste Daroussin } 66*f499134dSBaptiste Daroussin } 67*f499134dSBaptiste Daroussin 68*f499134dSBaptiste Daroussin 69*f499134dSBaptiste Daroussin return output; 70*f499134dSBaptiste Daroussin } 71