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