1 /*- 2 * SPDX-License-Identifier: CC0-1.0 3 * 4 * Written in 2021 by Alfonso Sabato Siciliano. 5 * To the extent possible under law, the author has dedicated all copyright 6 * and related and neighboring rights to this software to the public domain 7 * worldwide. This software is distributed without any warranty, see: 8 * <http://creativecommons.org/publicdomain/zero/1.0/>. 9 */ 10 11 #include <stdio.h> 12 #include <string.h> 13 14 #include <bsddialog.h> 15 16 int main() 17 { 18 int i, output; 19 struct bsddialog_conf conf; 20 struct bsddialog_menuitem items[5] = { 21 {"i", true, 0, "Name 1", "Desc 1", "Bottom Desc 1"}, 22 {"ii", false, 0, "Name 2", "Desc 2", "Bottom Desc 2"}, 23 {"iii", true, 0, "Name 3", "Desc 3", "Bottom Desc 3"}, 24 {"iv", false, 0, "Name 4", "Desc 4", "Bottom Desc 4"}, 25 {"v", true, 0, "Name 5", "Desc 5", "Bottom Desc 5"} 26 }; 27 28 if (bsddialog_init() == BSDDIALOG_ERROR) { 29 printf("Error: %s\n", bsddialog_geterror()); 30 return (1); 31 } 32 33 bsddialog_initconf(&conf); 34 conf.title = "checklist"; 35 output = bsddialog_checklist(&conf, "Example", 15, 30, 5, 5, items, 36 NULL); 37 38 bsddialog_end(); 39 40 if (output == BSDDIALOG_ERROR) { 41 printf("Error: %s\n", bsddialog_geterror()); 42 return (1); 43 } 44 45 if (output == BSDDIALOG_CANCEL) { 46 printf("Cancel\n"); 47 return (0); 48 } 49 50 printf("Checklist:\n"); 51 for (i = 0; i < 5; i++) 52 printf(" [%c] %s\n", items[i].on ? 'X' : ' ', items[i].name); 53 54 return (output); 55 }