home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / misc / mymenu.lzh / MYMENU.DOC < prev    next >
Text File  |  1989-03-08  |  5KB  |  140 lines

  1. MyMenu is a program to allow you to create your own menus in the WorkBench
  2. to run your own commands.  This can save the hassle of opening up lots
  3. of drawers to get to the command you want.  MyMenu will allow you to execute
  4. both CLI and WorkBench programs, and is configured with a normal text
  5. file.  There are probably a few Amiga programming rules violated, but
  6. hopefully, this program will be obsolete when WorkBench 1.4 is released,
  7. since I hear this capability may be added.
  8.  
  9. Building:
  10.  
  11.   There is a supplied Makefile, which works with Manx 3.6, and a version
  12.   of make from a Fish disk (I don't remember which one).  The Makefile
  13.   should work with most make programs.  I haven't tried to get this
  14.   to work with 16-bit integers, or to work with Lattice (although, I
  15.   would like this).
  16.  
  17.   There are some defines in MyMenu.h that can be customized.  DO_WB
  18.   determines if support for WorkBench programs is included.  Undefining
  19.   this can save a lot of space if you don't need this option.  DO_PATH
  20.   if defined will compile in code for path searching for commands.
  21.   Currently, it is undefined.
  22.  
  23. Installation:
  24.  
  25.   Copy MyMenu-Handler to the L: directory.  MyMenu will also look
  26.   for this file in the current directory if it does not exist in
  27.   the L: directory.
  28.  
  29.   Create the file S:MyMenu.conf.  The format of this file is described
  30.   later.
  31.  
  32. Running:
  33.  
  34.   Step one is to start up the Workbench!
  35.   
  36.   The command "MyMenu" will load and start up the handler process.
  37.   Menus should now appear in the WorkBench menu strip.
  38.   
  39.   Running MyMenu while the handler is already loaded will cause
  40.   it to re-parse the configuration file and rebuild the menus.
  41.  
  42.   The command "MyMenu quit" will terminate and unload the handler
  43.   process.
  44.  
  45. Configuration file:
  46.  
  47.   The configuration file is read in when you run MyMenu.  It is
  48.   looked for in the S: directory, and in the current directory in
  49.   that order.
  50.  
  51.   The configuration file defines the menus you want, and what commands
  52.   they will run.  You may put carriage returns between keywords, but
  53.   you cannot put a carriage return in the middle of a command.
  54.   Comments begin with a #, and continue until the end of the line.
  55.   Upper and lowercase does not make a difference.
  56.  
  57.   COLOR n
  58.  
  59.     This will set the foreground pen color for new menus.  You can
  60.     change this as often as you want.  The arguments is number that is
  61.     the pen number to use.  The default is 2 (black).
  62.  
  63.   MENU [<command-char>] menu-name item-name [sub-item-name] | command-def
  64.  
  65.     Defines a new menu.  Each menu definition must have a menu-name and
  66.     an item-name.  A sub-item-name is optional.  If any of these names
  67.     contain whitespace, enclose the name in double quotes, or precede
  68.     the whitespace character with a backslash (\).  A command character
  69.     may be defined for the menu item by putting the character after the
  70.     MENU keyword and surround it with <>'s.
  71.  
  72.     Separate the menu definition and the command definition with a vertical
  73.     bar (|).  After the bar, you can have the keywords CLI or WB, to
  74.     specify that the command is a CLI or WorkBench command.  Everything
  75.     after WB until the end of the line is taken to be the command.
  76.     Everything after CLI until a space or end of the line is taken to be
  77.     the command.  Everything else will be passed as arguments to the
  78.     CLI command.  Do not include redirection in a CLI command.
  79.  
  80.   Examples:
  81.  
  82.     menu Games Tetrix | WB dh0:games/tetrix
  83.  
  84.       This will define a menu "Games", with a menu item "Tetrix".
  85.       If this is selected, the command "dh0:games/tetrix" will be run
  86.       as a WorkBench program.
  87.  
  88.     menu <B> Games "Black Box" | WB df0:Black Box
  89.  
  90.       This will define a menu item "Black Box" under the menu "Games".
  91.       The menu Games will already exist from the previous example, and
  92.       will now contain "Tetrix" and "Black Box" as items.  The command
  93.       to be run is "df0:Black Box" (Box is not an argument).
  94.       The menu can also be selected by typing <Amiga>-B.
  95.  
  96.     color 3
  97.     menu  Utilities DMouse "Start DMouse" | c:DMouse
  98.     menu  Utilities DMouse "Quit DMouse" | c:DMouse quit
  99.  
  100.       This will define two sub menu items (drawn in yellow).  The second
  101.       command has an argument.
  102.  
  103. Future plans and hopeless dreams:
  104.   AREXX support.
  105.   Fix up path searching.
  106.   A better parser.
  107.   Support for graphical menu items.
  108.  
  109. Limitations, bugs, and other wierd things:
  110.   Path searching does not work.  Do not compile this in.
  111.   I would appreciate it if someone can find the problem, since I
  112.   am stuck.  Details are in DoRun.c.
  113.  
  114.   New preferences causes menus to disappear (but handler is not unloaded).
  115.   The menus can be rebuilt by running MyMenu again.
  116.  
  117.   Redirection can not be done for CLI programs, since the code already
  118.   does redirection to and from NIL:.
  119.  
  120.   Line limit of 256 characters in configuration file.
  121.  
  122. Acknowledgements:
  123.  
  124.   I have borrowed ideas and code snipits from other public domain
  125.   programs.  I have also received help directly from some people.
  126.   I would like to thank those people (whose names I remember):
  127.   
  128.     Matt Dillon        - Ideas for menu building and how to load in the
  129.                           handler were taken from DME and DMouse.
  130.     Peter da Silva    - Ideas taken from wblaunch program.
  131.     Rob Peck        - Some ideas and help.
  132.     Davide Cervone    - LOTS of ideas taken from MonIDCMP.
  133.  
  134. Signature:
  135.  
  136.   Darin Johnson
  137.   darin@laic.UUCP
  138.   {leadsv!laic!darin@pyramid.pyramid.com}
  139.   (415) 368-0972
  140.