menus.mc revision 1.10 1 1.10 phil /* $NetBSD: menus.mc,v 1.10 2000/08/15 02:09:12 phil Exp $ */
2 1.1 phil
3 1.1 phil /*
4 1.1 phil * Copyright 1997 Piermont Information Systems Inc.
5 1.1 phil * All rights reserved.
6 1.1 phil *
7 1.1 phil * Written by Philip A. Nelson for Piermont Information Systems Inc.
8 1.1 phil *
9 1.1 phil * Redistribution and use in source and binary forms, with or without
10 1.1 phil * modification, are permitted provided that the following conditions
11 1.1 phil * are met:
12 1.1 phil * 1. Redistributions of source code must retain the above copyright
13 1.1 phil * notice, this list of conditions and the following disclaimer.
14 1.1 phil * 2. Redistributions in binary form must reproduce the above copyright
15 1.1 phil * notice, this list of conditions and the following disclaimer in the
16 1.1 phil * documentation and/or other materials provided with the distribution.
17 1.1 phil * 3. All advertising materials mentioning features or use of this software
18 1.1 phil * must display the following acknowledgement:
19 1.1 phil * This product includes software develooped for the NetBSD Project by
20 1.1 phil * Piermont Information Systems Inc.
21 1.1 phil * 4. The name of Piermont Information Systems Inc. may not be used to endorse
22 1.1 phil * or promote products derived from this software without specific prior
23 1.1 phil * written permission.
24 1.1 phil *
25 1.1 phil * THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``AS IS''
26 1.1 phil * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 1.1 phil * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 1.1 phil * ARE DISCLAIMED. IN NO EVENT SHALL PIERMONT INFORMATION SYSTEMS INC. BE
29 1.1 phil * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 1.1 phil * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 1.1 phil * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 1.1 phil * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 1.1 phil * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 1.1 phil * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
35 1.1 phil * THE POSSIBILITY OF SUCH DAMAGE.
36 1.1 phil *
37 1.1 phil */
38 1.1 phil
39 1.1 phil {
40 1.1 phil
41 1.9 phil #include "msg_defs.h"
42 1.9 phil
43 1.9 phil /* Initial code for definitions and includes and prototypes. */
44 1.9 phil void do_dynamic (void);
45 1.9 phil static int msg_init = 0;
46 1.1 phil
47 1.1 phil }
48 1.1 phil
49 1.1 phil default x=20, y=10;
50 1.2 phil
51 1.8 phil allow dynamic menus;
52 1.7 phil
53 1.2 phil error action { fprintf (stderr, "Testm: Could not initialize curses.\n");
54 1.2 phil exit(1); };
55 1.1 phil
56 1.9 phil menu root, title " Main Menu of Test System", x=10;
57 1.9 phil display action {
58 1.9 phil /* Message initialization */
59 1.9 phil if (!msg_init) {
60 1.9 phil msg_window (stdscr);
61 1.9 phil msg_init = 1;
62 1.9 phil }
63 1.9 phil msg_display (MSG_welcome);
64 1.9 phil wrefresh(stdscr); };
65 1.1 phil option "Do nothing option",
66 1.1 phil action { }
67 1.1 phil ;
68 1.1 phil option "Try a sub menu",
69 1.1 phil sub menu submenu
70 1.1 phil ;
71 1.4 phil option "A scrollable menu",
72 1.4 phil sub menu scrollit
73 1.4 phil ;
74 1.5 phil option "Another scrollable menu",
75 1.5 phil sub menu scrollit2
76 1.5 phil ;
77 1.5 phil option "Big non-scrollable menu, bombs on small screens",
78 1.10 phil sub menu bigscroll
79 1.9 phil ;
80 1.10 phil option "A menu with no shortcuts",
81 1.10 phil sub menu noshort
82 1.10 phil ;
83 1.9 phil option "A dynamic menu ...",
84 1.9 phil action { do_dynamic (); }
85 1.9 phil ;
86 1.1 phil option "Run a shell...",
87 1.1 phil action (endwin) { system ("/bin/sh"); }
88 1.1 phil ;
89 1.1 phil exit action (endwin) { printf ("Thanks for playing\n"); };
90 1.3 phil help {
91 1.3 phil Main Menu Help Screen
92 1.1 phil
93 1.3 phil This is help text for the main menu of the menu test system. This
94 1.3 phil text should appear verbatim when asked for by use of the ? key by
95 1.3 phil the user. This should allow scrolling, if needed. If the first
96 1.3 phil character in the help is the newline (as the case for this help),
97 1.3 phil then that newline is not included in the help text.
98 1.3 phil
99 1.3 phil Now this tests lines for scrolling:
100 1.3 phil 10
101 1.3 phil 11
102 1.3 phil 12
103 1.3 phil 13
104 1.3 phil 14
105 1.3 phil 15
106 1.3 phil 16
107 1.3 phil 17
108 1.3 phil 18
109 1.3 phil 19
110 1.3 phil 20
111 1.3 phil 21
112 1.3 phil 22
113 1.3 phil 23
114 1.3 phil 24
115 1.3 phil 25
116 1.3 phil 26
117 1.3 phil 27
118 1.3 phil 28
119 1.3 phil 29
120 1.3 phil 30
121 1.3 phil 31
122 1.3 phil 32
123 1.3 phil 33
124 1.3 phil 34
125 1.3 phil 35
126 1.3 phil 36
127 1.3 phil 37
128 1.3 phil 38
129 1.3 phil 39
130 1.3 phil 40
131 1.3 phil 41
132 1.3 phil 42
133 1.3 phil 43
134 1.3 phil 44
135 1.3 phil 45
136 1.3 phil 46
137 1.3 phil 47
138 1.3 phil 48
139 1.3 phil 49
140 1.3 phil 50
141 1.3 phil 51
142 1.3 phil 52
143 1.3 phil 53
144 1.3 phil 54
145 1.3 phil 55
146 1.3 phil 56
147 1.3 phil 57
148 1.3 phil 58
149 1.3 phil 59
150 1.3 phil 60
151 1.3 phil 61
152 1.3 phil 62
153 1.3 phil 63
154 1.3 phil 64
155 1.3 phil 65
156 1.3 phil 66
157 1.3 phil 67
158 1.3 phil 68
159 1.3 phil 69
160 1.3 phil 70
161 1.3 phil 71
162 1.3 phil 72
163 1.3 phil 73
164 1.3 phil 74
165 1.3 phil 75
166 1.3 phil 76
167 1.3 phil 77
168 1.3 phil 78
169 1.3 phil 79
170 1.3 phil 80
171 1.3 phil };
172 1.1 phil
173 1.1 phil menu submenu, title " submenu test";
174 1.1 phil option "upper right", sub menu upperright;
175 1.5 phil option "lower left", sub menu lowerleft;
176 1.1 phil option "middle, no title", sub menu middle;
177 1.7 phil option "next menu", next menu nextmenu;
178 1.1 phil
179 1.1 phil menu upperright, title "upper right", y=2, x=60, no exit;
180 1.1 phil option "Just Exit!", exit;
181 1.1 phil
182 1.1 phil menu lowerleft, title "lower left", y=20, x=2, no exit;
183 1.1 phil option "Just Exit!", exit;
184 1.1 phil
185 1.1 phil menu middle, no box;
186 1.1 phil option "Just Exit!", exit;
187 1.7 phil
188 1.7 phil menu nextmenu, title " A next window! ? for comments", no exit;
189 1.7 phil option "Just Exit!:", exit;
190 1.10 phil
191 1.10 phil menu noshort, title " No shortcut characters!", no shortcut;
192 1.10 phil option "first", action {};
193 1.10 phil option "second", action {};
194 1.10 phil option "third", action {};
195 1.1 phil
196 1.4 phil menu scrollit, scrollable, h=4, title " Scrollable Menu";
197 1.4 phil option "option 1", action {};
198 1.4 phil option "option 2", action {};
199 1.4 phil option "option 3", action {};
200 1.4 phil option "option 4", action {};
201 1.4 phil option "option 5", action {};
202 1.4 phil option "option 6", action {};
203 1.5 phil
204 1.5 phil menu bigscroll, no scrollable, title " Non-scrollable Menu";
205 1.5 phil option "option 1", action {};
206 1.5 phil option "option 2", action {};
207 1.5 phil option "option 3", action {};
208 1.5 phil option "option 4", action {};
209 1.5 phil option "option 5", action {};
210 1.5 phil option "option 6", action {};
211 1.5 phil option "option 7", action {};
212 1.5 phil option "option 8", action {};
213 1.5 phil option "option 9", action {};
214 1.5 phil option "option 10", action {};
215 1.5 phil option "option 11", action {};
216 1.5 phil option "option 12", action {};
217 1.5 phil option "option 13", action {};
218 1.5 phil option "option 14", action {};
219 1.5 phil option "option 15", action {};
220 1.5 phil option "option 16", action {};
221 1.5 phil option "option 17", action {};
222 1.5 phil option "option 18", action {};
223 1.5 phil option "option 19", action {};
224 1.5 phil option "option 20", action {};
225 1.5 phil
226 1.6 phil menu scrollit2, scrollable, title " Big scrollable Menu";
227 1.5 phil option "option 1", action {};
228 1.5 phil option "option 2", action {};
229 1.5 phil option "option 3", action {};
230 1.5 phil option "option 4", action {};
231 1.5 phil option "option 5", action {};
232 1.5 phil option "option 6", action {};
233 1.5 phil option "option 7", action {};
234 1.5 phil option "option 8", action {};
235 1.5 phil option "option 9", action {};
236 1.5 phil option "option 10", action {};
237 1.5 phil option "option 11", action {};
238 1.5 phil option "option 12", action {};
239 1.5 phil option "option 13", action {};
240 1.5 phil option "option 14", action {};
241 1.5 phil option "option 15", action {};
242 1.5 phil option "option 16", action {};
243 1.5 phil option "option 17", action {};
244 1.5 phil option "option 18", action {};
245 1.5 phil option "option 19", action {};
246 1.5 phil option "option 20", action {};
247 1.5 phil option "option 21", action {};
248 1.5 phil option "option 22", action {};
249 1.5 phil option "option 23", action {};
250 1.5 phil option "option 24", action {};
251 1.5 phil option "option 25", action {};
252 1.5 phil option "option 26", action {};
253 1.5 phil option "option 27", action {};
254 1.5 phil option "option 28", action {};
255 1.5 phil option "option 29", action {};
256 1.5 phil option "option 30", action {};
257 1.5 phil option "option 31", action {};
258 1.5 phil option "option 32", action {};
259 1.5 phil option "option 33", action {};
260 1.5 phil option "option 34", action {};
261 1.5 phil option "option 35", action {};
262 1.5 phil option "option 36", action {};
263 1.5 phil option "option 37", action {};
264 1.5 phil option "option 38", action {};
265 1.5 phil option "option 39", action {};
266 1.5 phil option "option 40", action {};
267 1.5 phil option "option 41", action {};
268 1.5 phil option "option 42", action {};
269 1.5 phil option "option 43", action {};
270 1.5 phil option "option 44", action {};
271 1.5 phil option "option 45", action {};
272 1.5 phil option "option 46", action {};
273 1.5 phil option "option 47", action {};
274 1.5 phil option "option 48", action {};
275 1.5 phil option "option 49", action {};
276 1.5 phil option "option 50", action {};
277 1.5 phil option "option 51", action {};
278