1*84823cc7SAlfonso S. Siciliano /*- 2*84823cc7SAlfonso S. Siciliano * SPDX-License-Identifier: CC0-1.0 3*84823cc7SAlfonso S. Siciliano * 4*84823cc7SAlfonso S. Siciliano * Written in 2022 by Alfonso Sabato Siciliano. 5*84823cc7SAlfonso S. Siciliano * To the extent possible under law, the author has dedicated all copyright 6*84823cc7SAlfonso S. Siciliano * and related and neighboring rights to this software to the public domain 7*84823cc7SAlfonso S. Siciliano * worldwide. This software is distributed without any warranty, see: 8*84823cc7SAlfonso S. Siciliano * <http://creativecommons.org/publicdomain/zero/1.0/>. 9*84823cc7SAlfonso S. Siciliano */ 10*84823cc7SAlfonso S. Siciliano 11*84823cc7SAlfonso S. Siciliano #include <bsddialog.h> 12*84823cc7SAlfonso S. Siciliano #include <stdio.h> 13*84823cc7SAlfonso S. Siciliano #include <string.h> 14*84823cc7SAlfonso S. Siciliano #include <time.h> 15*84823cc7SAlfonso S. Siciliano 16*84823cc7SAlfonso S. Siciliano int main() 17*84823cc7SAlfonso S. Siciliano { 18*84823cc7SAlfonso S. Siciliano int output; 19*84823cc7SAlfonso S. Siciliano unsigned int yy, mm, dd; 20*84823cc7SAlfonso S. Siciliano struct bsddialog_conf conf; 21*84823cc7SAlfonso S. Siciliano time_t cal; 22*84823cc7SAlfonso S. Siciliano struct tm *localtm; 23*84823cc7SAlfonso S. Siciliano 24*84823cc7SAlfonso S. Siciliano time(&cal); 25*84823cc7SAlfonso S. Siciliano localtm = localtime(&cal); 26*84823cc7SAlfonso S. Siciliano yy = localtm->tm_year + 1900; 27*84823cc7SAlfonso S. Siciliano mm = localtm->tm_mon + 1; 28*84823cc7SAlfonso S. Siciliano dd = localtm->tm_mday; 29*84823cc7SAlfonso S. Siciliano 30*84823cc7SAlfonso S. Siciliano if (bsddialog_init() == BSDDIALOG_ERROR) { 31*84823cc7SAlfonso S. Siciliano printf("Error: %s\n", bsddialog_geterror()); 32*84823cc7SAlfonso S. Siciliano return (1); 33*84823cc7SAlfonso S. Siciliano } 34*84823cc7SAlfonso S. Siciliano 35*84823cc7SAlfonso S. Siciliano bsddialog_initconf(&conf); 36*84823cc7SAlfonso S. Siciliano conf.title = "calendar"; 37*84823cc7SAlfonso S. Siciliano output = bsddialog_calendar(&conf, "Example", 18, 40, &yy, &mm, &dd); 38*84823cc7SAlfonso S. Siciliano 39*84823cc7SAlfonso S. Siciliano bsddialog_end(); 40*84823cc7SAlfonso S. Siciliano 41*84823cc7SAlfonso S. Siciliano switch (output) { 42*84823cc7SAlfonso S. Siciliano case BSDDIALOG_OK: 43*84823cc7SAlfonso S. Siciliano printf("Date: %u/%u/%u", yy, mm, dd); 44*84823cc7SAlfonso S. Siciliano break; 45*84823cc7SAlfonso S. Siciliano case BSDDIALOG_CANCEL: 46*84823cc7SAlfonso S. Siciliano printf("Cancel"); 47*84823cc7SAlfonso S. Siciliano break; 48*84823cc7SAlfonso S. Siciliano case BSDDIALOG_ERROR: 49*84823cc7SAlfonso S. Siciliano printf("Error: %s", bsddialog_geterror()); 50*84823cc7SAlfonso S. Siciliano break; 51*84823cc7SAlfonso S. Siciliano } 52*84823cc7SAlfonso S. Siciliano printf("\n"); 53*84823cc7SAlfonso S. Siciliano 54*84823cc7SAlfonso S. Siciliano return (output); 55*84823cc7SAlfonso S. Siciliano }