NAMEd.menu - Creates and displays a menu within the active frame on the graphics monitor.
SYNOPSISd.menu d.menu help d.menu [bcolor=string] [tcolor=string] [dcolor=string] [size=integer] [--verbose] [--quiet] Parameters: bcolor=string Sets the color of the menu background Options: red,orange,yellow,green,blue,indigo,violet,white,black,gray,brown,magenta,aqua,grey,cyan,purple Default: white tcolor=string Sets the color of the menu text Options: red,orange,yellow,green,blue,indigo,violet,white,black,gray,brown,magenta,aqua,grey,cyan,purple Default: black dcolor=string Sets the color dividing lines of text Options: red,orange,yellow,green,blue,indigo,violet,white,black,gray,brown,magenta,aqua,grey,cyan,purple Default: black size=integer Sets the menu text size (in percent) Options: 1-100 Default: 3
DESCRIPTIONd.menu allows the user to create a menu containing a TITLE and options, and to display this menu in the active frame on the graphics monitor. After the menu is displayed in the active frame, the mouse must be used to select one of the menu options. The number associated with the selected menu option is then printed to standard output (stdout) and the program exits. This program provides GRASS macro writers with a mouse interface for user interaction. Parameters can be stated on the command line, from within standard input (stdin), or from within a script file (as illustrated below). The user can specify the menu's background, text, and line colors (bcolor, tcolor, and dcolor) and the menu size (size) on the command line. If the user sets at least one of these values on the command line, any remaining values that are not specified will be set (automatically) to their default values.
NOTESMenu Information: After the user has (optionally) specified menu colors and size, the program expects the user to enter information about the menu's location and content. The menu will be placed in the lower right corner of the active display frame by default if the user does not position it elsewhere using the .T or .L commands. The user specifies the menu contents by entering a menu TITLE followed by the option choices to appear in the menu when displayed. The user must enter a menu TITLE and at least one menu option. All .dot commands are optional. # Comment line. (ignored) .B value Specifies the menu's background color. .C value Specifies the menu's text color. .D value Specifies the menu's dividing line color. .F value Specifies the menu's font. May be any of the standard GRASS fonts. (see d.font) .S value Specifies the menu's font size. (as a percentage of the active frame's height). .T value Specifies the menu's distance from the active display frame's top edge (as a percentage of the active frame's height). .L value Specifies the menu's distance from the active display frame's left edge (as a percentage of the active frame's width). menu TITLE A TITLE that describes the type of options listed in the menu, and that will appear at the top of the menu when it is displayed. option name(s) The options that will appear in the menu when displayed. Each menu option should appear on a separate line. The user may enter as many options as desired, but must enter at least one menu option. Note: The user should choose a menu size and location that will allow all menu options to be displayed in the active frame. If the user enters the menu TITLE and option(s) from standard input (i.e., at the keyboard rather than from a file), the user should enter control-d to end input and display the menu in the active frame on the graphics monitor. (Note: The d.menu program can also be incorporated into UNIX Bourne shell script macros. The below example shows how this might be done.)
EXAMPLESExample 1 a='d.menu << EOF # set the background color brown # set the text color # set the text size in % of entire screen height .br # set the top edge # set the LEFT edge # The menu Title Sample Menu # the options option 1 option 2 option 3 option 4 option 5 option 6 EOF ' echo "You have just chosen option $a" Example 2 In the following example, the shell script menu2 calls the shell script color.select which contains d.menu commands to display a menu in the current frame on the graphics monitor. After the user selects an option from the display menu, the selection number is available for use by menu2. Contents of file menu2: #! /bin/csh -f set option = 0 set colors = (red green blue black white ) @ option = 'color.select' if ($option <= 5) then set color = $colors[$option] echo $color endif exit Contents of file color.select: #! /bin/csh -f d.menu bcolor=red tcolor=green dcolor=yellow size=5 << EOF Color Choices Option 1 Option 2 Option 3 Option 4 Option 5 EOF If the user runs menu2, a menu will be displayed on the graphics monitor that has red background, green text, with menu options divided by yellow lines, and a text size of 5% of the active display frame height. The mouse cursor will become active, allowing the user to select (by pointing with the mouse) one of the displayed menu options. Here, these menu options are called Option 1, Option 2, and Option 3, etc. The first line of text (here, the words Color Choices) contains the TITLE of the menu; this line is not a menu option that can be chosen by the user with the mouse. When the user presses one of the mouse buttons while pointing to the desired menu choice, the number of the option chosen will be available for capture by the shell script menu2. menu2 is a simple example that takes this information and only echoes it to the screen.
NOTESAlthough the user can vary text size, all text within the same menu is displayed in a single text size (and font). If the user specifies that items included in the menu's text be displayed in different sizes, all text will be displayed in the size stated last.
SEE ALSOd.ask d.font d.frame d.grid d.legend d.paint.labels d.text d.title
AUTHORJames Westervelt, U.S. Army Construction Engineering Research Laboratory Last changed: $Date: 2008-01-25 01:26:26 +0100 (Fri, 25 Jan 2008) $ Full index (C) 2003-2010 GRASS Development Team D.MENU(1)