xref: /netbsd/usr.bin/menuc/testm/menus.mc (revision bf9ec67e)
1/*	$NetBSD: menus.mc,v 1.10 2000/08/15 02:09:12 phil Exp $	*/
2
3/*
4 * Copyright 1997 Piermont Information Systems Inc.
5 * All rights reserved.
6 *
7 * Written by Philip A. Nelson for Piermont Information Systems Inc.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 * 1. Redistributions of source code must retain the above copyright
13 *    notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 *    notice, this list of conditions and the following disclaimer in the
16 *    documentation and/or other materials provided with the distribution.
17 * 3. All advertising materials mentioning features or use of this software
18 *    must display the following acknowledgement:
19 *      This product includes software develooped for the NetBSD Project by
20 *      Piermont Information Systems Inc.
21 * 4. The name of Piermont Information Systems Inc. may not be used to endorse
22 *    or promote products derived from this software without specific prior
23 *    written permission.
24 *
25 * THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``AS IS''
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 * ARE DISCLAIMED. IN NO EVENT SHALL PIERMONT INFORMATION SYSTEMS INC. BE
29 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
35 * THE POSSIBILITY OF SUCH DAMAGE.
36 *
37 */
38
39{
40
41#include "msg_defs.h"
42
43/* Initial code for definitions and includes and  prototypes. */
44void do_dynamic (void);
45static int msg_init = 0;
46
47}
48
49default x=20, y=10;
50
51allow dynamic menus;
52
53error action { fprintf (stderr, "Testm: Could not initialize curses.\n");
54	       exit(1); };
55
56menu root, title "  Main Menu of Test System", x=10;
57	display action {
58		/* Message initialization */
59		if (!msg_init) {
60			msg_window (stdscr);
61			msg_init = 1;
62		}
63		msg_display (MSG_welcome);
64		wrefresh(stdscr); };
65	option  "Do nothing option",
66		action  { }
67	;
68	option  "Try a sub menu",
69		sub menu  submenu
70	;
71	option  "A scrollable menu",
72		sub menu  scrollit
73	;
74	option  "Another scrollable menu",
75		sub menu scrollit2
76	;
77	option  "Big non-scrollable menu, bombs on small screens",
78		sub menu bigscroll
79	;
80	option  "A menu with no shortcuts",
81		sub menu noshort
82	;
83	option  "A dynamic menu ...",
84		action { do_dynamic (); }
85	;
86	option  "Run a shell...",
87		action (endwin) { system ("/bin/sh"); }
88	;
89	exit action (endwin)  { printf ("Thanks for playing\n"); };
90	help {
91                    Main Menu Help Screen
92
93This is help text for the main menu of the menu test system.  This
94text should appear verbatim when asked for by use of the ? key by
95the user.  This should allow scrolling, if needed.  If the first
96character in the help is the newline (as the case for this help),
97then that newline is not included in the help text.
98
99Now this tests lines for scrolling:
10010
10111
10212
10313
10414
10515
10616
10717
10818
10919
11020
11121
11222
11323
11424
11525
11626
11727
11828
11929
12030
12131
12232
12333
12434
12535
12636
12737
12838
12939
13040
13141
13242
13343
13444
13545
13646
13747
13848
13949
14050
14151
14252
14353
14454
14555
14656
14757
14858
14959
15060
15161
15262
15363
15464
15565
15666
15767
15868
15969
16070
16171
16272
16373
16474
16575
16676
16777
16878
16979
17080
171};
172
173menu submenu, title "  submenu test";
174	option  "upper right", sub menu  upperright;
175	option  "lower left", sub menu  lowerleft;
176	option  "middle, no title", sub menu middle;
177	option  "next menu", next menu nextmenu;
178
179menu upperright, title "upper right", y=2, x=60, no exit;
180	option  "Just Exit!", exit;
181
182menu lowerleft, title "lower left", y=20, x=2, no exit;
183	option  "Just Exit!", exit;
184
185menu middle, no box;
186	option "Just Exit!", exit;
187
188menu nextmenu, title "  A next window! ? for comments", no exit;
189	option "Just Exit!:", exit;
190
191menu noshort, title "  No shortcut characters!", no shortcut;
192	option "first", action {};
193	option "second", action {};
194	option "third", action {};
195
196menu scrollit, scrollable, h=4, title "  Scrollable Menu";
197	option "option 1", action {};
198	option "option 2", action {};
199	option "option 3", action {};
200	option "option 4", action {};
201	option "option 5", action {};
202	option "option 6", action {};
203
204menu bigscroll, no scrollable, title "  Non-scrollable Menu";
205	option "option 1", action {};
206	option "option 2", action {};
207	option "option 3", action {};
208	option "option 4", action {};
209	option "option 5", action {};
210	option "option 6", action {};
211	option "option 7", action {};
212	option "option 8", action {};
213	option "option 9", action {};
214	option "option 10", action {};
215	option "option 11", action {};
216	option "option 12", action {};
217	option "option 13", action {};
218	option "option 14", action {};
219	option "option 15", action {};
220	option "option 16", action {};
221	option "option 17", action {};
222	option "option 18", action {};
223	option "option 19", action {};
224	option "option 20", action {};
225
226menu scrollit2, scrollable, title "  Big scrollable Menu";
227	option "option 1", action {};
228	option "option 2", action {};
229	option "option 3", action {};
230	option "option 4", action {};
231	option "option 5", action {};
232	option "option 6", action {};
233	option "option 7", action {};
234	option "option 8", action {};
235	option "option 9", action {};
236	option "option 10", action {};
237	option "option 11", action {};
238	option "option 12", action {};
239	option "option 13", action {};
240	option "option 14", action {};
241	option "option 15", action {};
242	option "option 16", action {};
243	option "option 17", action {};
244	option "option 18", action {};
245	option "option 19", action {};
246	option "option 20", action {};
247	option "option 21", action {};
248	option "option 22", action {};
249	option "option 23", action {};
250	option "option 24", action {};
251	option "option 25", action {};
252	option "option 26", action {};
253	option "option 27", action {};
254	option "option 28", action {};
255	option "option 29", action {};
256	option "option 30", action {};
257	option "option 31", action {};
258	option "option 32", action {};
259	option "option 33", action {};
260	option "option 34", action {};
261	option "option 35", action {};
262	option "option 36", action {};
263	option "option 37", action {};
264	option "option 38", action {};
265	option "option 39", action {};
266	option "option 40", action {};
267	option "option 41", action {};
268	option "option 42", action {};
269	option "option 43", action {};
270	option "option 44", action {};
271	option "option 45", action {};
272	option "option 46", action {};
273	option "option 47", action {};
274	option "option 48", action {};
275	option "option 49", action {};
276	option "option 50", action {};
277	option "option 51", action {};
278