c/sampler renamed to Ghetto-SoundSystem ;-)
[mirrors/Programs.git] / bash / bbs / utils / menu.c
... / ...
CommitLineData
1#include <curses.h>
2#include <menu.h>
3
4#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
5#define CTRLD 4
6
7char *choices[] = {
8 "Choice 1",
9 "Choice 2",
10 "Choice 3",
11 "Choice 4",
12 "Exit",
13 "Choice 1",
14 "Choice 2",
15 "Choice 3",
16 "Choice 4",
17 "Exit",
18 "Choice 1",
19 "Choice 2",
20 "Choice 3",
21 "Choice 4",
22 "Exit",
23 "Choice 1",
24 "Choice 2",
25 "Choice 3",
26 "Choice 4",
27 "Exit",
28 "Choice 1",
29 "Choice 2",
30 "Choice 3",
31 "Choice 4",
32 "Exit",
33 };
34
35int main()
36{ ITEM **my_items;
37 int c;
38 MENU *my_menu;
39 int n_choices, i;
40 ITEM *cur_item;
41
42
43 initscr();
44 cbreak();
45 noecho();
46 keypad(stdscr, TRUE);
47
48 n_choices = ARRAY_SIZE(choices);
49 my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
50
51 for(i = 0; i < n_choices; ++i)
52 my_items[i] = new_item(choices[i], choices[i]);
53 my_items[n_choices] = (ITEM *)NULL;
54
55 my_menu = new_menu((ITEM **)my_items);
56 mvprintw(LINES - 1, 0, "F2 to Exit");
57 post_menu(my_menu);
58 refresh();
59
60 while((c = getch()) != KEY_F(2))
61 { switch(c)
62 { case KEY_DOWN:
63 menu_driver(my_menu, REQ_DOWN_ITEM);
64 break;
65 case KEY_UP:
66 menu_driver(my_menu, REQ_UP_ITEM);
67 break;
68 }
69 }
70
71 free_item(my_items[0]);
72 free_item(my_items[1]);
73 free_menu(my_menu);
74 endwin();
75}
76
This page took 0.121295 seconds and 4 git commands to generate.