Home | History | Annotate | Line # | Download | only in testm
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