1 /*
2  * small test-driver for new dialog functionality
3  *
4  * Copyright (c) 1995, Jordan Hubbard
5  *
6  * All rights reserved.
7  *
8  * This source code may be used, modified, copied, distributed, and
9  * sold, in both source and binary form provided that the above
10  * copyright and these terms are retained, verbatim, as the first
11  * lines of this file.  Under no circumstances is the author
12  * responsible for the proper functioning of the software nor does
13  * the author assume any responsibility for damages incurred with
14  * its use.
15  */
16 
17 #include <sys/cdefs.h>
18 __FBSDID("$FreeBSD: stable/9/gnu/lib/libodialog/TESTS/radio1.c 209200 2010-06-15 10:01:49Z ae $");
19 
20 #include <stdio.h>
21 #include <stdlib.h>
22 #include <string.h>
23 #include <unistd.h>
24 #include <sys/wait.h>
25 #include <dialog.h>
26 
27 /* Hook functions */
28 
29 static int spending;
30 
31 static int
check(dialogMenuItem * self)32 check(dialogMenuItem *self)
33 {
34     return ((int)(intptr_t)self->data == spending);
35 }
36 
37 static int
spend(dialogMenuItem * self)38 spend(dialogMenuItem *self)
39 {
40     spending = (int)(intptr_t)self->data;
41     return DITEM_SUCCESS | DITEM_REDRAW;
42 }
43 
44 /* menu5 - Show a simple radiolist menu that inherits the radio appearance by default */
45 /* prompt	title			checked		fire		sel   data */
46 static dialogMenuItem menu5[] = {
47     { "1000",	"Spend $1,000",		check,		spend,		NULL, (void *)1000 },
48     { "500",	"Spend $500",		check,		spend,		NULL, (void *)500 },
49     { "100",	"Spend $100",		check,		spend, 		NULL, (void *)100 },
50 };
51 
52 /* End of hook functions */
53 
54 /* Kick it off, James! */
55 int
main(int argc,char ** argv)56 main(int argc, char **argv)
57 {
58     int retval;
59 
60     init_dialog();
61 
62 
63     retval = dialog_radiolist("this is dialog_radiolist() in action, test #1",
64 			      "this radio menu shows off some of the straight-forward features\n"
65 			      "of the new menu system's check & fire dispatch hooks", -1, -1, 3, -3, menu5, NULL);
66     dialog_clear();
67     fprintf(stderr, "returned value for dialog_radiolist was %d (money set to %d)\n", retval, spending);
68 
69     end_dialog();
70     return 0;
71 }
72