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