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 #include <time.h> 14 15 #include <bsddialog.h> 16 17 int main() 18 { 19 int output; 20 unsigned int hh, mm, ss; 21 struct bsddialog_conf conf; 22 time_t clock; 23 struct tm *localtm; 24 25 time(&clock); 26 localtm = localtime(&clock); 27 hh = localtm->tm_hour; 28 mm = localtm->tm_min; 29 ss = localtm->tm_sec; 30 31 bsddialog_initconf(&conf); 32 conf.title = "timebox"; 33 conf.bottomtitle = "Press TAB and arrows"; 34 35 if (bsddialog_init() < 0) 36 return -1; 37 38 output = bsddialog_timebox(&conf, "Example", 10, 50, &hh, &mm, &ss); 39 40 bsddialog_end(); 41 42 switch (output) { 43 case BSDDIALOG_OK: 44 printf("Time: [%u:%u:%u]\n", hh, mm, ss); 45 break; 46 case BSDDIALOG_ESC: 47 printf("ESC\n"); 48 break; 49 case BSDDIALOG_CANCEL: 50 printf("Cancel\n"); 51 break; 52 case BSDDIALOG_ERROR: 53 printf("Error: %s\n", bsddialog_geterror()); 54 break; 55 } 56 57 return output; 58 } 59