]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bsddialog/examples_library/timebox.c
Import bionic's x86_64 optimized string routines
[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 <bsddialog.h>
12 #include <stdio.h>
13 #include <string.h>
14 #include <time.h>
15
16 int main()
17 {
18         int output;
19         unsigned int hh, mm, ss;
20         struct bsddialog_conf conf;
21         time_t clock;
22         struct tm *localtm;
23
24         time(&clock);
25         localtm = localtime(&clock);
26         hh = localtm->tm_hour;
27         mm = localtm->tm_min;
28         ss = localtm->tm_sec;
29
30         if (bsddialog_init() == BSDDIALOG_ERROR) {
31                 printf("Error: %s\n", bsddialog_geterror());
32                 return (1);
33         }
34
35         bsddialog_initconf(&conf);
36         conf.title = "timebox";
37         output = bsddialog_timebox(&conf,
38             "TAB / RIGHT / LEFT to move,\nUP / DOWN to select time", 10, 35,
39             &hh, &mm, &ss);
40
41         bsddialog_end();
42
43         switch (output) {
44         case BSDDIALOG_OK:
45                 printf("Time: [%u:%u:%u]\n", hh, mm, ss);
46                 break;
47         case BSDDIALOG_CANCEL:
48                 printf("Cancel\n");
49                 break;
50         case BSDDIALOG_ERROR:
51                 printf("Error: %s\n", bsddialog_geterror());
52                 break;
53         }
54
55         return (output);
56 }