menus.mc revision 1.9 1 /* $NetBSD: menus.mc,v 1.9 1998/07/16 07:08:26 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. */
44 void do_dynamic (void);
45 static int msg_init = 0;
46
47 }
48
49 default x=20, y=10;
50
51 allow dynamic menus;
52
53 error action { fprintf (stderr, "Testm: Could not initialize curses.\n");
54 exit(1); };
55
56 menu 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 dynamic menu ...",
81 action { do_dynamic (); }
82 ;
83 option "Run a shell...",
84 action (endwin) { system ("/bin/sh"); }
85 ;
86 exit action (endwin) { printf ("Thanks for playing\n"); };
87 help {
88 Main Menu Help Screen
89
90 This is help text for the main menu of the menu test system. This
91 text should appear verbatim when asked for by use of the ? key by
92 the user. This should allow scrolling, if needed. If the first
93 character in the help is the newline (as the case for this help),
94 then that newline is not included in the help text.
95
96 Now this tests lines for scrolling:
97 10
98 11
99 12
100 13
101 14
102 15
103 16
104 17
105 18
106 19
107 20
108 21
109 22
110 23
111 24
112 25
113 26
114 27
115 28
116 29
117 30
118 31
119 32
120 33
121 34
122 35
123 36
124 37
125 38
126 39
127 40
128 41
129 42
130 43
131 44
132 45
133 46
134 47
135 48
136 49
137 50
138 51
139 52
140 53
141 54
142 55
143 56
144 57
145 58
146 59
147 60
148 61
149 62
150 63
151 64
152 65
153 66
154 67
155 68
156 69
157 70
158 71
159 72
160 73
161 74
162 75
163 76
164 77
165 78
166 79
167 80
168 };
169
170 menu submenu, title " submenu test";
171 option "upper right", sub menu upperright;
172 option "lower left", sub menu lowerleft;
173 option "middle, no title", sub menu middle;
174 option "next menu", next menu nextmenu;
175
176 menu upperright, title "upper right", y=2, x=60, no exit;
177 option "Just Exit!", exit;
178
179 menu lowerleft, title "lower left", y=20, x=2, no exit;
180 option "Just Exit!", exit;
181
182 menu middle, no box;
183 option "Just Exit!", exit;
184
185 menu nextmenu, title " A next window! ? for comments", no exit;
186 option "Just Exit!:", exit;
187
188 menu scrollit, scrollable, h=4, title " Scrollable Menu";
189 option "option 1", action {};
190 option "option 2", action {};
191 option "option 3", action {};
192 option "option 4", action {};
193 option "option 5", action {};
194 option "option 6", action {};
195
196 menu bigscroll, no scrollable, title " Non-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 option "option 7", action {};
204 option "option 8", action {};
205 option "option 9", action {};
206 option "option 10", action {};
207 option "option 11", action {};
208 option "option 12", action {};
209 option "option 13", action {};
210 option "option 14", action {};
211 option "option 15", action {};
212 option "option 16", action {};
213 option "option 17", action {};
214 option "option 18", action {};
215 option "option 19", action {};
216 option "option 20", action {};
217
218 menu scrollit2, scrollable, title " Big scrollable Menu";
219 option "option 1", action {};
220 option "option 2", action {};
221 option "option 3", action {};
222 option "option 4", action {};
223 option "option 5", action {};
224 option "option 6", action {};
225 option "option 7", action {};
226 option "option 8", action {};
227 option "option 9", action {};
228 option "option 10", action {};
229 option "option 11", action {};
230 option "option 12", action {};
231 option "option 13", action {};
232 option "option 14", action {};
233 option "option 15", action {};
234 option "option 16", action {};
235 option "option 17", action {};
236 option "option 18", action {};
237 option "option 19", action {};
238 option "option 20", action {};
239 option "option 21", action {};
240 option "option 22", action {};
241 option "option 23", action {};
242 option "option 24", action {};
243 option "option 25", action {};
244 option "option 26", action {};
245 option "option 27", action {};
246 option "option 28", action {};
247 option "option 29", action {};
248 option "option 30", action {};
249 option "option 31", action {};
250 option "option 32", action {};
251 option "option 33", action {};
252 option "option 34", action {};
253 option "option 35", action {};
254 option "option 36", action {};
255 option "option 37", action {};
256 option "option 38", action {};
257 option "option 39", action {};
258 option "option 40", action {};
259 option "option 41", action {};
260 option "option 42", action {};
261 option "option 43", action {};
262 option "option 44", action {};
263 option "option 45", action {};
264 option "option 46", action {};
265 option "option 47", action {};
266 option "option 48", action {};
267 option "option 49", action {};
268 option "option 50", action {};
269 option "option 51", action {};
270