home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / vrac / dmenu173.zip / DOUGMENU.DOC < prev    next >
Text File  |  1994-05-09  |  38KB  |  809 lines

  1.                               DougMenu Menuing Software
  2.  
  3.                                     Version 1.73
  4.  
  5.  
  6.                                Written by Douglas Bell
  7.                                   dab6@po.cwru.edu
  8.  
  9.  
  10.  
  11.  
  12.  
  13. Program and Documentation are ■ 1991-1994
  14. See 'Terms of Use' for details.
  15.  
  16.  
  17.  
  18.  
  19. Netware and Novell are registered trademarks of Novell Inc.
  20. MS-DOS is a registered trademark of Microsoft Inc.
  21. PC is a registered trademark of International Business Machines Inc.
  22.  
  23. ================================================================
  24.  
  25.       TERMS OF USE for DougMenu v1.73, released on May 9, 1994
  26.  
  27.  
  28. This program is a freeware product and so should be distributed
  29. at no charge, besides that of a reasonable media fee, if
  30. applicable.  
  31. No charge should ever be made for the program itself, or any
  32. program using source code from this program.
  33.  
  34. While users are free to modify DougMenu for their own use,
  35. modified versions of DougMenu are not to be distributed out side
  36. of the business or organization which created or commissioned
  37. them.  The DougMenu package should always be distributed complete
  38. and unaltered except when being installed for use at multiple
  39. sites within a business or organization.  Then it is permitted to
  40. install only the files deemed necessary to use the menu system as
  41. long as one complete copy is maintained by the business or
  42. organization.
  43.  
  44. If you have suggestion concerning the further development of
  45. DougMenu, please contact the author concerning any changes you
  46. suggest to the official version.
  47.  
  48. A copy of the most recent version of DougMenu can be mailed to
  49. you for US $10.  Printed Documentation is available for US $25. 
  50. US $5 surcharge for postage outside North America.  One year of
  51. customer support via electronic mail is available for US $35.
  52.  
  53. Send requests, comments, or orders to:
  54.  
  55. Douglas A. Bell
  56. 1726 Coventry Rd., APT #3
  57. Cleveland Heights, Ohio   44118-1130
  58. USA
  59.  
  60. -or-
  61.  
  62. dab6@po.cwru.edu
  63.  
  64.  
  65. THERE IS NO WARRANTY, EXPRESSED OR IMPLIED, FOR DOUGMENU.  WHILE
  66. THE AUTHOR HAS ATTEMPTED TO PRODUCE AN ERROR FREE PROGRAM, THE
  67. AUTHOR ASSUMES NO RESPONSIBILITY FOR ANY DAMAGE THAT THIS PROGRAM
  68. MIGHT CAUSE.
  69.  
  70. ■ 1991-1994
  71.  
  72. ================================================================
  73. ***** New features in 1.73 *****
  74.  
  75. There are no features in 1.73 other than bug fixes and foriegn
  76. language translations.
  77.  
  78.       Minor changes to dmenu.bat to catch command line errors.
  79.  
  80.       Dougmenu variables that were used but did not have values
  81.       assigned were wiping out true enviroment variable
  82.       assignments in the temporary batch files.
  83.  
  84.       Fixed the #space command so that it works with volumes that
  85.       have up to 4 GB of free space.
  86.  
  87.       Fixed the black screen flash that was experienced by people
  88.       who used colored text screens.
  89.  
  90.       Fixed erroneous #if_member server/group results on
  91.       non-default server.
  92.  
  93.       Added the following language translations because of the
  94.       generousity of many people around the globe:
  95.       DM_ÇESKA.EXE        Czech translation               Ales Rikovsky
  96.       DM_DANSK.EXE        Danish translation              Anders Nattestad
  97.       DM_NEDER.EXE        Dutch translation               Jaap van Ginkel 
  98.                                                           Chris Teuben
  99.       DM_FRANC.EXE        French translation              William EL-KAIM
  100.       DM_DEUTS.EXE        German translation              Christoph Weber-Fahr
  101.       DM_NORSK.EXE        Norwegian translation           Roger Foss
  102.       DM_PORTU.EXE        Portugues/Brazil trans.         Marcos Vianna Villas 
  103.       DM_SVENS.EXE        Swedish translation             Jakob Schlyter
  104.  
  105.       If you would like to help me translate DougMenu into another
  106.       language, send me some email.
  107.  
  108. ***** New features in 1.72 *****
  109.  
  110. Multiple server support-
  111.       The commands #if_username and #if_member can now be called
  112.       for a specified server.  e.g.: 
  113.  
  114.              #if_username myserver/me
  115.              #if_member theirserver/somegroup
  116.  
  117.       The server specifier can be left out and the commands will
  118.       work as before.
  119.  
  120. Fixed a mistake in 1.71
  121.       I forgot to include the code to prevent users from using
  122.       ctrl-break or ^C to get out of the menu system.
  123.  
  124. ***** New features in 1.71 *****
  125.  
  126. Large scripts-
  127.       Dougmenu can now read in script files of over 300k in size
  128.       (conventional memory permitting).
  129.  
  130. VLM 1.1 compatibility-
  131.       Dougmenu now works with vlm 1.1.
  132.  
  133. Compatibility paramters-
  134.       DougMenu.exe can now be called with the parameter color or
  135.       mono after the %1 parameter.  These parameters should be
  136.       useful on old AT&T computers where the size of the video
  137.       display was not properly determined by DougMenu's auto-
  138.       detection logic.  The color parameter will force DougMenu to
  139.       use a color text page that is 80x25 in size and starting at
  140.       B800.  The mono parameter will force DougMenu to use a
  141.       monochrome text page that is 80x25 in size which starts at
  142.       B000.
  143.  
  144. Bug Fixes-
  145.       Fixed the bug which wouldn't allow the script to change the
  146.       footer highlight color. 
  147.  
  148. ***** New features planned for DougMenu 2.0 *****
  149.  
  150.       Scrolling windows
  151.       Built-in file browser
  152.       Foreign language support
  153.       Remote and automated configuration tools
  154.       Runtime language support so that I don't have to distribute 
  155.        a 300K archive.
  156.  
  157. When will it be available?  I have no idea.  I start to work on
  158. it and then I get frustrated, bored, or some really cool new
  159. video game arrives.  But let me say that I still work on it, but
  160. I no longer pre-announce release dates.
  161.  
  162. ================================================================
  163.  
  164. This document assumes a certain degree of familiarity with MS-DOS
  165. based computing.  It is more intended as a reference for a PC
  166. administrator instead of a neophyte user.
  167.  
  168. WHAT IS DOUGMENU?
  169.       DougMenu is intended for use as a stand alone menuing system
  170.       or as a client interface for a PC network using PC
  171.       compatible computers.
  172.  
  173.       DougMenu requires 100k of disk space, 256k free memory, and
  174.       MS-DOS version 3.3 compatibility.
  175.  
  176. FEATURES:
  177.       No memory overhead when launching applications.
  178.       Available in many different language versions.
  179.       Programmable function keys and hidden 'hot' keys.
  180.       Reads Novell menus scripts with little or no modification.
  181.       Built-in screen saver that won't conflict with TSR programs.
  182.       Can run TSR programs.
  183.       Controlled exiting.
  184.       Security features.
  185.       Full mouse support.
  186.       User input capabilities.
  187.       Support for novell networks.
  188.       Minimal batch file litter.
  189.       Easily customized colors and layouts.
  190.       Small.
  191.       Fast.
  192.       Free!
  193.  
  194. HOW IT WORKS:
  195.       DougMenu requires the use of 3 files:  DOUGMENU.EXE,
  196.       DMENU.BAT and a menu script.  After DougMenu is configured
  197.       for your system and a menu script has been created, type the
  198.       following to start the menu program:
  199.  
  200.       [DRIVE:][PATH] DMENU DRIVE:\[PATH]\MENUSCRIPT[.MNU]
  201.  
  202.       The parameter after DMENU is the path and the name of the
  203.       menu script.  If DougMenu cannot find your menu script, it
  204.       will add ".MNU" to the end of the file name and look for
  205.       that file. Although the .MNU extension is not required, it
  206.       may be helpful for organizing files.
  207.  
  208.       The DMENU.BAT file runs the DougMenu executable.  The
  209.       executable reads in the menu script and uses the script to
  210.       display menus and such.  When an action is selected that
  211.       requires leaving the menu system, the executable makes a
  212.       temporary batch file according to the t environment
  213.       variable.  Once the file is made, DOUGMENU.EXE terminates
  214.       and returns an errorlevel to the DMENU.BAT batch file.  The
  215.       errorlevel determines how to use the temporary batch is
  216.       invoked, or if to exit without using it.  If the temporary
  217.       batch file is going to return to the menu program, the
  218.       temporary batch file is invoked with the "call" command
  219.       which is only found in dos 3.3 and higher to force the
  220.       return.
  221.  
  222. ================================================================
  223.  
  224. INSTALLING DOUGMENU:
  225.  
  226.       To install DougMenu, make a directory on a computers fixed
  227.       disk or on a file server and copy the files found in the
  228.       DougMenu distribution zip file into that directory.
  229.       It is permitted to install DougMenu in a minimal operational
  230.       configuration within a business or organization.  See the
  231.       beginning of this document for details.
  232.  
  233. CONFIGURING DOUG MENU:
  234.  
  235.       To configure DougMenu, two lines need to be edited in the file
  236.       named DMENU.BAT.
  237.              Listing of DMENU.BAT:
  238.                    @echo off
  239.                    if %1.==. goto error
  240.              *     set t=C:\temp.fil
  241.                    :loop
  242.              **    C:\MENU\DOUGMENU.EXE %1
  243.                    if errorlevel = 2 %t%
  244.                    if errorlevel = 1 goto quit 
  245.                    call %t%
  246.                    goto loop
  247.                    :error
  248.                    echo No menu script was specified.
  249.                    :quit
  250.                    set t=
  251.  
  252.       *      -- When DougMenu is run, it will create a small temporary
  253.       batch file called temp.bat.  The t environment variable
  254.       determines the name and path of the temporary batch file. The
  255.       name of the temporary file name should end ".fil" .  If you
  256.       want to put the temporary files on a networked drive, read the
  257.       section concerning network customization in the Hints and Tips
  258.       section.  Also, putting spaces between the 't' and the '=' can
  259.       cause problems with some versions of DOS.  So don't use "t =
  260.       c:\temp.fil", use "set t=c:\temp.fil" instead.
  261.  
  262.       **     -- This line should be set to the location of
  263.       DOUGMENU.EXE on your hard drive or networked drive.  Optional
  264.       paramters color or mono can be added after the %1 to force a
  265.       video mode to be selected properly.
  266.  
  267. SUGGESTIONS FOR CUSTOMIZATION OF DMENU.BAT:
  268.       Keep in mind that DMENU.BAT is only a batch file, and can be
  269.       edited into many different working configurations.  Feel free
  270.       to add anything to it which will help your system.  But be
  271.       careful; it is not a good idea to place commands after the
  272.       dougmenu.exe line and before the "if errorlevel" lines because
  273.       this could change the errorlevel settings before the "if
  274.       errorlevel" statements can read it.
  275.  
  276.       If you want to make sure that the user was returned to a
  277.       specific directory after returning from any application, a
  278.       change directory command can be placed after the loop label in
  279.       the DMENU.BAT file.
  280.  
  281.       If you want to broadcast a message when the menu system is
  282.       first started, you can put a dos "type" command followed by a
  283.       "pause" command at the beginning of the DMENU.BAT file to do
  284.       this.
  285.  
  286. ================================================================
  287.  
  288. HOW TO WRITE MENU SCRIPTS:
  289.  
  290.       The basic unit of a DougMenu script is the menu structure.  It
  291.       is used to create menu windows when a script is splayed by
  292.       DougMenu.  A menu structure begins with a line whose first
  293.       character is '%'.  Any text after the '%' and before a comma
  294.       or the end of the line is used as the title of the particular
  295.       menu.  The following line would be used to create a menu
  296.       called "My First Menu".
  297.  
  298.       %My First Menu
  299.  
  300.       Non-indented lines which follow the menu title will be
  301.       displayed as visible options in the particular menu.  Indented
  302.       text can be placed after the option names and these lines will
  303.       determine what will happen if the option that they follow is
  304.       chosen.  The lines of indented executable text are normally
  305.       placed into a temporary batch file and then run.  The
  306.       following sample of a menu script illustrates a simple menu
  307.       structure complete will options and actions.
  308.  
  309.       %My First Menu
  310.       My First Option
  311.         echo The first option was chosen
  312.         pause
  313.       Subtitle Option
  314.       Wordperfect
  315.         c:
  316.         cd wp51
  317.         wp.exe
  318.  
  319.       Notice that the second option is not followed by any text. 
  320.       When this is the case, the option will not be selectable and
  321.       the its name will be displayed as a subtitle in the menu
  322.       window when it the menu structure is displayed.
  323.  
  324.       When a script is started, the first menu structure in the
  325.       script will be automatically displayed.  To open more menu
  326.       structures from the first, the executable text of an option
  327.       should contain the name of the menu to be opened after an
  328.       indented '%'.  This is demonstrated below.
  329.  
  330.       %The first menu
  331.       Launch a new menu
  332.         %another menu
  333.       Another Option
  334.         its executable text
  335.  
  336.       %Another Menu
  337.       Its Items
  338.         Executable batch file stuff for them.
  339.  
  340.       This method of opening menu windows can be recursed and/or
  341.       nested up to 10 levels deep.
  342.  
  343. ================================================================
  344.  
  345. HINTS AND TIPS:
  346.  
  347. Networking Hazards:
  348.       Temporary Batch files:
  349.              The best thing to do is put the temporary batch files on
  350.              local hard drives or ram drives.  If the temporary files
  351.              are to be placed in a common directory on a networked
  352.              drive, numerous temporary files can coexist if they are
  353.              named according to the connection number, network
  354.              address, or user name.  This can be done by placing the
  355.              distinguishing value into an environment variable, say
  356.              %connection%, when logging into the server and then use
  357.              that variable to define the temporary batch file in
  358.              DMENU.BAT, like this:
  359.  
  360.                    set temp=u:\temp\%connection%.fil 
  361.              
  362.       Logging out of a server from inside the menu:
  363.              If the temporary batch files are on a local drive and
  364.              DMENU.BAT is on a networked drive: 
  365.                    1)     Use "#logout" followed by "#exit" or
  366.                           "#reboot".
  367.                    2)     Use a batch file which logs the user out of
  368.                           the server, but end the option's executable
  369.                           text with "#exit".
  370.                    3)     Put DMENU.BAT on some network drive that is
  371.                           visible when not logged into the server, such
  372.                           as the \LOGIN directory.
  373.              If both the temporary batch files and DMENU.BAT are on
  374.              networked drives:
  375.                    1)     Use "#logout" followed by "#reboot".
  376.                    2)     Put DMENU.BAT and the temporary batch file on
  377.                           some network drive that is visible when not
  378.                           logged into the server, such as the \LOGIN
  379.                           directory.
  380.  
  381. Differences from Novell
  382.  
  383.       Menu x,y positioning parameter order:
  384.              Novell menu orders the menu placement parameters as
  385.              %menu,Y,X and they are offset from the center of the
  386.              menu.  DougMenu uses an X,Y arrangement instead, and
  387.              coordinates determine the offset for the upper left
  388.              corner of the menus.
  389.       String Input
  390.              The Novell menu's system of string input was limited. 
  391.              DougMenu uses the "#ask" command.
  392.       !LOGOUT
  393.              Novell menu uses "!logout" to log a user out of the
  394.              server and exit the program.  It can be replaced with
  395.              "#logout" followed by "#exit" or "#reboot".
  396.  
  397.  
  398. ================================================================
  399.  
  400. POSITIONING MENUS & CHOOSING MENU COLORS.
  401.  
  402.       %MenuTitle [,<x_position>,<y_position>,<palette_number>]
  403.  
  404.       Parameters can be used after a menu title to change the
  405.       location and the color palette used when displaying a menu
  406.       window.  These parameters are offset from the menu title with
  407.       commas.  To center a menu window with respect to an axis, use
  408.       255 as the placement value.  DougMenu will reposition menu
  409.       windows so that they do not cover the header box and are not
  410.       off the screen.
  411.  
  412.       DougMenu has 10 palettes numbered 0 through 9.  These palettes
  413.       can be redefined with the special external command '#palette'. 
  414.       Palettes 8 and 9 are used for monochrome displays.  If
  415.       DougMenu is run using a monochrome display, it will use these
  416.       two palette and ignore attempt to change the palette.
  417.  
  418. ADVANCED MENU CUSTOMIZATIONS:
  419.  
  420.       The following section lists the names used in the notation of
  421.       the command listing.
  422.  
  423. <string>           a string of characters that can contain environment
  424.                    variables.
  425. <group>            a string that specifically represents a novell user
  426.                    group's name
  427. <username>                a string that specifically represents a novell
  428.                           user's name
  429. <filename>                a string which is the filename of a dos text
  430.                           file.
  431. <palette_number>          a value between 0-9
  432.  
  433. <foreground_color>        a number from 1 - 15 from the list below.
  434. <background_color>        a number from 0 - 7 from the list below.
  435.  
  436.         0   -   black                  8   -   dark grey
  437.         1   -   blue                   9   -   lt. blue
  438.         2   -   green                  10  -   lt. green
  439.         3   -   cyan                   11  -   lt. cyan
  440.         4   -   red                    12  -   lt. red
  441.         5   -   magenta                13  -   lt. magenta
  442.         6   -   brown                  14  -   yellow
  443.         7   -   lt.grey                15  -   white
  444.  
  445. <key_code>         a number between 0-255 which corresponds to a IBM
  446.                    keyboard scan code.
  447.  
  448. <char_code>        a number between 0-255 which corresponds to an IBM
  449.                    screen display code.
  450.  
  451. <X_Position>       a number between 0-255 which will determine the
  452.                    horizontal position of the upper left corner of a
  453.                    DougMenu window.  If it is 255, the window will be
  454.                    centered.
  455. <X_Vector>         a number between 0-255 which will determine how far
  456.                    a way the next default window will be located from
  457.                    the currently opened window.
  458.  
  459.  
  460. PARSING COMMANDS:
  461.  
  462.       These commands affect the way that DOUGMENU.EXE reads in the
  463.       menu script when DougMenu is used.  The action of these
  464.       commands depends on their placement within the script.
  465.  
  466. ;comments
  467.              Any text following after a semicolon on one line that is
  468.              not in quotations will be treated as a comment and
  469.              ignored by the parser.  This can cause trouble with the
  470.              dos "path" and "assign" commands.  Use the two following
  471.              commands as a work-around.
  472. #nocomments
  473.              Normally, any characters after a semi-colon in a line
  474.              will be ignored.  Once this command is parsed, semicolons
  475.              will be treated as normal text and not used a comments.
  476. #comments
  477.              This command restores the default behavior of semicolons.
  478. #if <string> [!][=] [<string>]
  479.       three usages:
  480.              #if <string> == <string>
  481.                    The parser will continue parsing the menu script if
  482.                    the two strings are identical after all environment
  483.                    variables are resolved.  Otherwise all text will be
  484.                    skipped until the corresponding #endif is found.
  485.              #if <string> != <string>
  486.                    As above except the parser will continue parsing
  487.                    only if the two string are not equal after the
  488.                    environment variables are resolved.
  489.              #if <string>
  490.                    Will continue parsing the menu script if the string
  491.                    contains any text after all of the environment
  492.                    variables are resolved.  Otherwise the parser will
  493.                    skip to the corresponding #endif.
  494.       All of these conditions are evaluated as the script is being
  495.       read.  No DougMenu variables created with the #ask command can
  496.       be used.  "#If" statements can be nested up to 255 levels
  497.       deep.
  498. #if_member [!][servername/]<group>
  499.              The parser will continue parsing the menu script if the
  500.              computer is currently logged into a novell server as a
  501.              user who is a member of the specified group.  Otherwise
  502.              all text will be skipped until the corresponding #endif
  503.              is found.  An exclamation point will make the parser
  504.              continue only if the user is not in the group.  A
  505.              combination of a server name and group name can also be
  506.              used in this form: "servername/username".
  507. #if_username [!][servername/]<username>
  508.              The parser will continue parsing the menu script if the
  509.              computer is currently logged into a novell server as the
  510.              user whose name is specified by the username string. 
  511.              Otherwise all text will be skipped until the
  512.              corresponding #endif is found.  An exclamation point will
  513.              cause the parser to continue only if the user is not
  514.              logged in under the specified name.    A combination of
  515.              a server name and group name can also be used in this
  516.              form: "servername/username".
  517. #endif
  518.              This is used to end an #if statement.  If it is
  519.              unnecessary, it will be ignored.
  520.  
  521. #else
  522.              If the last #if statement failed, this will allow parsing
  523.              to continue from this point on.  If the last #if
  524.              statement passed, then this will make the parser stop
  525.              parsing the script until the next #endif statement is
  526.              found.
  527. #include = <filename>[.mnu]
  528.              Causes the text of the specified file to be parsed at
  529.              this point as if it were part of the primary script. 
  530.              Once the text of the included file is parsed, the parsing
  531.              of the original file will continue.  This command can be
  532.              nested, but do not nest scripts more than five levels
  533.              deep.  If the file name can't be found, Dougmenu will
  534.              look for the file with a ".mnu" extension.  If the file
  535.              still cannot be found an error message will be generated. 
  536.              In order to maintain compatibility with past versions of
  537.              DougMenu, an '=' must be used here.
  538. #include_if_exist = <filename>[.mnu]
  539.              As above accept no error message will be generated if the
  540.              file cannot be found.
  541. #default placement = <X_Position>,<Y_Position>
  542.              This option sets the default placement of the upper left
  543.              corner of all menus parsed after this statement.  A
  544.              position value of 255 will cause windows to be centered
  545.              with respect to the corresponding axis.  Place this at
  546.              the top of a script to affect all menu structures.
  547. #default palette = <palette_number>
  548.              The palette number changes the default palette for any
  549.              menu structures parsed after this point in the script. 
  550.              This statement will be ignored on computers with
  551.              monochrome display adapters.  Place this at the top of a
  552.              script to affect all menu structures.
  553.  
  554.  
  555.  
  556. EXTERNAL COMMANDS:
  557.       There are a variety of external commands which can be used to
  558.       customize the DougMenu environment.  The commands are called
  559.       external commands because they are placed outside of the
  560.       normal menu structures.  It is recommended that all external
  561.       commands be placed at the top of the script to avoid
  562.       confusion, although they can be placed in between menu
  563.       structures.
  564.  
  565. #display[,<x_position>,<y_position>,<palette_number>]
  566.   "Text to be displayed"
  567.   "Text to be displayed"
  568.   "Text to be displayed"
  569.              This will display a text box on top of the backdrop but
  570.              behind the first menu window.  Once displayed, boxes
  571.              created with this command are inert.  The display box
  572.              will size itself according to the longest line of text. 
  573.              Environment variables can be in the text.  DougMenu
  574.              Variables cannot be used in these external structures.
  575. #f<number> = <string>
  576.              Define an action for a function key.  The number is the
  577.              number of the function key ( 1-10 ) and the string
  578.              afterwards will be its title when it is displayed on the
  579.              footer bar.  The footer bar is not displayed if no
  580.              function keys are assigned actions with this command. 
  581.              This command should be followed with lines of indented
  582.              text which will be executed if the function key is
  583.              pressed while the menu screen is displayed.
  584. #key <key_code>,[<key_code>]
  585.              Define an action for a key.  The key codes refer to the
  586.              dos key codes for the key that is to be assigned an
  587.              action.  If the code is 0, it should be followed by
  588.              another number which corresponds to an extended key code. 
  589.              This structure should be followed by indented text which
  590.              will determine the action of this hot key.
  591. #timer [= <minutes>]
  592.              Create an action that will occur should there be no user
  593.              input for a given amount of time while DOUGMENU.EXE is
  594.              running.  The default time is 10 minutes if no time is
  595.              specified in the script.  If this structure is followed
  596.              by lines of indented text, those lines will determine the
  597.              action that will be taken if there is no user input for
  598.              the specified amount of time while the menu is displayed. 
  599.              If this structure is not followed by lines of indented
  600.              text, DougMenu will automatically enter a screen saver
  601.              mode when the timer expires.  The screen will be blanked
  602.              and the time and date will be moved around the screen at
  603.              one minute intervals.
  604. #saver message = <string>
  605.              The string that is specified in this statement will
  606.              replace the time and date for the built in screen saver.
  607. #header message = <string>
  608.              The string in this statement will replace the DougMenu
  609.              version in the header box.
  610. #header palette = <palette_number>
  611.              The palette number changes the selected palette for the
  612.              header box.  The default header palette is 1.  This
  613.              statement will be ignored on computers with monochrome
  614.              display adapters.
  615.  
  616.  
  617. #error palette = <palette_number>
  618.              The palette number changes the default palette for any
  619.              error boxes.  The default error palette is 2.  This
  620.              statement will be ignored on computers with monochrome
  621.              display adapters.
  622. #message palette = <palette_number>
  623.              The palette number changes the default palette for
  624.              message boxes created by the #display command or any
  625.              other non-error related message boxes.  The default
  626.              message palette is 3.  This statement will be ignored on
  627.              computers with monochrome display adapters.
  628. #footer color = <background_color>,<foreground_color>
  629.              These two colors change the foreground and background of
  630.              the footer line at the bottom of the screen.  This footer
  631.              line will only be displayed if function keys are assigned
  632.              with the "#f<number>" commands.
  633. #footer highlight = <background_color>,<foreground_color>
  634.              These two colors define the color of an item on the
  635.              footer bar if it is highlighted due by the mouse cursor. 
  636.              This footer line will only be displayed if function keys
  637.              are assigned with the "#f<number>" commands.
  638. #shadow [= <background_color>,<foreground_color>]
  639.              This command will cause the active window on the screen
  640.              to have a shadow on the right and bottom side.  The
  641.              optional color parameters can be used to change the color
  642.              of the shadow.  The default color for the shadow is grey
  643.              on black.
  644. #backdrop color = <background_color>,<foreground_color>
  645.              This command can be used to change the color of the
  646.              backdrop characters.
  647. #backdrop char = <char_code>
  648.              This command can be used to change the character that is
  649.              displayed in the backdrop.  Try using a value of 1 for an
  650.              interesting effect.
  651. #backdrop file = <filename>
  652.              This command can be used to display an ascii or ansi text
  653.              file as a background.
  654.  
  655. #palette <palette_number> =     
  656.        Menu  Text  Title  Border Highlighted  Selected  Selected
  657.        BG  , FG  , FG   , FG    , Border FG , Item BG , Item FG
  658.              This is used to generate custom color palettes.  The
  659.              seven colors are entered as numbers according to the
  660.              color chart.  The values must be placed on the same line
  661.              as the #palette statement.
  662. #cascade [= <X_vector>,<Y_vector>]
  663.              This changes the default placement to 10,5 and causes all
  664.              menus to be 'stair stepped' or cascaded down from that
  665.              location.  The x_vector and y_vector determine how far
  666.              each window will be offset from the previous menu window. 
  667.              The default vector is 4,1.  This command can be followed
  668.              by "#default placement" to change the default position
  669.              from 10,5.
  670.  
  671. #noexit
  672.              Prevents exiting the menu system via the escape key.
  673.  
  674. #quickselect
  675.              Causes the items in menu windows to be displayed in an
  676.              enumerated fashion.  The items in windows can then be
  677.              selected and executed by pressing the number which
  678.              corresponds to the item.
  679.  
  680. #noreturn
  681.              Normally, after an action which requires a batch file is
  682.              executed, the menu script is parsed again and all windows
  683.              that were open when the item was executed are reopened. 
  684.              This command prevents the reopening of windows when the
  685.              computer returns to the menu program and the user is left
  686.              at the root menu.
  687.  
  688.  
  689. #notime
  690.              Prevents the time and date from being displayed in the
  691.              header box.  The time and date will still be used in the
  692.              default screen saver message.
  693.  
  694.  
  695. ================================================================
  696.  
  697.  
  698. SPECIAL EXECUTION COMMANDS:
  699.       The following commands are used only within the executable
  700.       text of an option, and so cannot have the '#' flush against
  701.       the left margin but instead be indented with spaces or tabs.
  702.       The Point of No Return:
  703.              When executing an option from a DougMenu menu script,
  704.              there is a certain point at which the parsing of the
  705.              executable text changes.  At this point, DougMenu decides
  706.              whether or not it is necessary to make a temporary batch
  707.              file.  Once the parser decides to make a temporary batch
  708.              file, all special execution commands will be ignored and
  709.              dumped into the batch file as straight text except for
  710.              the #if commands and the #exit command.  This means that
  711.              you cannot execute a dos command such as "dir", and then
  712.              open a query box.  Once a dos command is seen, this point
  713.              has been reached.
  714.       DougMenu Variables and Environment variables:
  715.              These can only be used in the execution portion of a
  716.              script or in some special external commands.  This means
  717.              that you cannot use an environment variable to name a
  718.              menu, while you can use them for a screen saver message
  719.              or for a #display box.  DougMenu variables can be used
  720.              just like environment variables.  Place the name inside
  721.              '%' characters, and the value of the variable will be
  722.              substituted in place of the name and the encapsulating
  723.              '%'.  Up to 10 DougMenu variables can be assigned in the
  724.              course of one option's executable text.
  725.  
  726. #if <string> [!][=] [<string>]
  727. #if_member [!][servername/]<group>
  728. #if_username [!][servername/]<username>
  729. #endif
  730. #else
  731.              All of these function work when indented in executable
  732.              but instead of controlling the parsing of the menu
  733.              script, they control what statements get executed, or
  734.              once the temporary batch file has begun being written,
  735.              they control what is written to the temporary batch file. 
  736.              Also, these #if statement can use DougMenu variables
  737.              created in the same option's indented executable text.
  738. #display[,<x_position>,<y_position>,<palette_number>]
  739.   "Text to be displayed"
  740.   "Text to be displayed"
  741.   "Text to be displayed"
  742.              This will display a text box when executed.  Execution
  743.              will pause at this point until a key is struck.  If
  744.              escape or the right mouse button is pressed, execution
  745.              will stop at this command and the user will go back to
  746.              the menu window.  If any other key is pressed, the
  747.              execution continues normally.  The window will size
  748.              itself according to the longest line of text.  DougMenu
  749.              Variables and Environment variables can be used in the
  750.              text.
  751. #ask <variable_name>,<string>,[,<x_pos>,<y_pos>,<palette_number>]
  752.   "regular option with string assignment"= stuff
  753.   "regular option with empty assignment"=
  754.   "a non-selectable subtitle"
  755.              Creates a window which resembles a menu window.  The
  756.              string will be the window's title.  The text in quotes
  757.              will be the options.  When the user chooses an option,
  758.              the text after the equal sign for the selected option
  759.              will be assigned to the DougMenu variable which is names
  760.              in the top line.  DougMenu variables and Environment
  761.              variables can be used in the title or options in the
  762.              query window.  Any DougMenu variables that are assigned
  763.              with this statement only hold their values during the
  764.              execution of this statement.  If a DougMenu variable is
  765.              assigned and then following this a new menu window is
  766.              opened, the value will be lost.  Up to 10 DougMenu
  767.              variables can be assigned in the course of one option's
  768.              executable text.
  769. #ask <variable_name>,<string>[,<x_pos>,<y_pos>,<palette_number>]
  770.              Creates a window which prompts the user to input a text
  771.              string.  The string will be the title of the window.  The
  772.              text received in this window will be assigned to the
  773.              variable name.  DougMenu variables and Environment
  774.              variables can be used in the title.  Any DougMenu
  775.              variables that are assigned with this statement only hold
  776.              their values during the execution of this statement.  If
  777.              a DougMenu variable is assigned and then following this
  778.              a new menu window is opened, the value will be lost.  Up
  779.              to 10 DougMenu variables can be assigned in the course of
  780.              one option's executable text.
  781. #floppy <variable_name>
  782.              Searches through all floppy drives to find one with a
  783.              formatted disk in it.  The drive letter with a colon will
  784.              by placed in the DougMenu variable.
  785. #space <drive> <number>
  786.              Checks a specified drive for a specified number of free
  787.              bytes in K.  So a value of 10 would mean to check for 10k
  788.              free.  If there is sufficient free space, the execution
  789.              will continue past this command.  If it is not, the user
  790.              is informed of the lack of drive space and returned to
  791.              the menu.  If there is an error accessing the drive, this
  792.              statement will always fail.
  793. #password <string>
  794.              The user is requested to enter a password.  If the
  795.              password is incorrect, the user is informed and returned
  796.              to the menu.  If it is correct, the execution of the item
  797.              continues.  Do not put in an equal sign.
  798. #exit
  799.              When this command is encountered, either the user is
  800.              returned to DOS, or all batch file commands before this
  801.              point are executed and then the user is returned to DOS.
  802. #logout
  803.              The user is logged out of all novell servers.  This will
  804.              not exit users from the menu.  Execution will continue
  805.              after this command.
  806. #reboot
  807.              This will immediately reboot the computer without
  808.              creating a batch file.
  809.