aboutsummaryrefslogtreecommitdiff
path: root/examples_library/datebox.c
blob: d2af7bd7fae09a28c71c3e33b5dd58a0c5cc6658 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/*-
 * SPDX-License-Identifier: CC0-1.0
 *
 * Written in 2021 by Alfonso Sabato Siciliano.
 * To the extent possible under law, the author has dedicated all copyright
 * and related and neighboring rights to this software to the public domain
 * worldwide. This software is distributed without any warranty, see:
 *   <http://creativecommons.org/publicdomain/zero/1.0/>.
 */

#include <stdio.h>
#include <string.h>
#include <time.h>

#include <bsddialog.h>

int main()
{
	int output;
	unsigned int yy, mm, dd;
	struct bsddialog_conf conf;
	time_t cal;
	struct tm *localtm;

	time(&cal);
	localtm = localtime(&cal);
	yy = localtm->tm_year + 1900;
	mm = localtm->tm_mon + 1;
	dd = localtm->tm_mday;

	if (bsddialog_init() == BSDDIALOG_ERROR) {
		printf("Error: %s\n", bsddialog_geterror());
		return (1);
	}

	bsddialog_initconf(&conf);
	conf.title = "datebox";
	conf.bottomtitle = "Press TAB and arrows";
	output = bsddialog_datebox(&conf, "Example", 10, 50, &yy, &mm, &dd);

	bsddialog_end();

	switch (output) {
	case BSDDIALOG_OK:
		printf("Date: %u/%u/%u", yy, mm, dd);
		break;
	case BSDDIALOG_CANCEL:
		printf("Cancel");
		break;
	case BSDDIALOG_ERROR:
		printf("Error: %s", bsddialog_geterror());
		break;
	}
	printf("\n");

	return (output);
}