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> 12*b319d934SAlfonso S. Siciliano #include <locale.h> 13f499134dSBaptiste Daroussin #include <stdio.h> 14f499134dSBaptiste Daroussin #include <stdlib.h> 15f499134dSBaptiste Daroussin #include <string.h> 16f499134dSBaptiste Daroussin 17f499134dSBaptiste Daroussin #define H BSDDIALOG_FIELDHIDDEN 18f499134dSBaptiste Daroussin #define RO BSDDIALOG_FIELDREADONLY 19f499134dSBaptiste Daroussin 20f499134dSBaptiste Daroussin int main() 21f499134dSBaptiste Daroussin { 22f499134dSBaptiste Daroussin int i, output; 23f499134dSBaptiste Daroussin struct bsddialog_conf conf; 24f499134dSBaptiste Daroussin struct bsddialog_formitem items[3] = { 25*b319d934SAlfonso S. Siciliano {"Input:", 0, 0, "value", 0, 10, 30, 50, NULL, 0, "desc 1"}, 26*b319d934SAlfonso S. Siciliano {"Input:", 1, 0, "read only", 1, 10, 30, 50, NULL, RO, "desc 2"}, 27*b319d934SAlfonso S. Siciliano {"Password:", 2, 0, "", 2, 10, 30, 50, NULL, H, "desc 3"} 28f499134dSBaptiste Daroussin }; 29f499134dSBaptiste Daroussin 30*b319d934SAlfonso S. Siciliano /* Optional, unless for unicode/multicolum charachters */ 31*b319d934SAlfonso S. Siciliano setlocale(LC_ALL, ""); 32*b319d934SAlfonso S. Siciliano 33263660c0SAlfonso Siciliano if (bsddialog_init() == BSDDIALOG_ERROR) { 34263660c0SAlfonso Siciliano printf("Error: %s\n", bsddialog_geterror()); 35263660c0SAlfonso Siciliano return (1); 36263660c0SAlfonso Siciliano } 37f499134dSBaptiste Daroussin bsddialog_initconf(&conf); 38f499134dSBaptiste Daroussin conf.title = "form"; 39f499134dSBaptiste Daroussin conf.form.securech = '*'; 40f499134dSBaptiste Daroussin output = bsddialog_form(&conf, "Example", 10, 50, 3, 3, items); 41f499134dSBaptiste Daroussin bsddialog_end(); 42f499134dSBaptiste Daroussin 43263660c0SAlfonso Siciliano if (output == BSDDIALOG_ERROR) { 44f499134dSBaptiste Daroussin printf("Error: %s", bsddialog_geterror()); 45263660c0SAlfonso Siciliano return (1); 46263660c0SAlfonso Siciliano } 47263660c0SAlfonso Siciliano 48263660c0SAlfonso Siciliano if (output == BSDDIALOG_CANCEL) { 49263660c0SAlfonso Siciliano printf("Cancel\n"); 50263660c0SAlfonso Siciliano return (0); 51263660c0SAlfonso Siciliano } 52f499134dSBaptiste Daroussin 53f499134dSBaptiste Daroussin for (i = 0; i < 3; i++) { 54f499134dSBaptiste Daroussin printf("%s \"%s\"\n", items[i].label, items[i].value); 55f499134dSBaptiste Daroussin free(items[i].value); 56f499134dSBaptiste Daroussin } 57f499134dSBaptiste Daroussin 58263660c0SAlfonso Siciliano return (output); 59f499134dSBaptiste Daroussin }