]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bsddialog/examples_library/timebox.c
bsddialog: import version 0.0.2
[FreeBSD/FreeBSD.git] / contrib / bsddialog / examples_library / timebox.c
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 }