MenuC The Menu Compiler Written by Bruce Mackey (c) 1990 All Rights Reserved Version 0.7 DISCLAMER Anyone my FREELY distribute this progam and program documentation, providing that the program, documention, and LZH file remain in there original state. You as the user or distributor may not charge any money apart from postage or material (eg. Disks). If you want to bundle this program (oh sure) with some work of your own you MUST get permission from the author in writing (of course if it is for a commercial product the author would like some green backs...er CASH!). OVERVIEW MenuC was created because I am sick and tied of keying in all the information needed to create just one menu, let alone FIVE! MenuC will take a VERY SIMPLE ascii file and create those VERY finger intensive MENU, MENUITEM (SUBITEM), and IntuiText structures needed for a complete menu. NOTE: MenuC deals ONLY with TEXT menus, no graphics. SPECIFICS MenuC is called from the command line with the following format: MenuC infile outfile [LASM|ASM] [TEST] infile and outfile are self explanitory. LASM - causes the program to produce an assembler output file compatible with Lattice's `asm'. ASM - causes the program to produce an assembler output file compatible with MetaComCo's `assem'. TEST - will cause the program to add a 'C' main() at the end of the output file OR an assembler startup routine at the start of the output file. The resulting outfile can be compiled/assembled as a standalone program in order to view your menus. Which is handy if you are developing a large program. NOTE: Output produced by LASM and ASM flags will work with A68k. MenuC is in an early stage of development. Currently it recognizes five (5) keywords which are as follows: WIDTH - right now it is used only for the main() routine created with the TEST flag from the CLI. Future versions will have error checking for screen width MENU - defines the actual menu ITEM - defines the menu's item SUBITEM - defines an item's subitem SHORTCUT - defines a keyboard shortcut for an item or subitem Keywords can be either upper or lower case and can have white space in front of them (for the structured look). KEYWORD SYNTAX WIDTH size WIDTH MUST be on the first line of the file and can have a value of 320 or 640(default). This will of course change when WB2.0 is available. MENU menu# NAME menu# has a range of 1 - n. NAME can be a quoted string (see DRAWBACKS below). ITEM menu# item# NAME [SHORTCUT c] menu# and item# have a range of 1 - n. menu# MUST be a valid menu number since ITEM will be bound to the MENU that owns menu#. NAME can be a quoted string (see DRAWBACKS below). The 'c' in [SHORTCUT c] can be any printable character either upper or lower case. SUBITEM menu# item# subitem# NAME [SHORTCUT c] same discription as ITEM with this exception: if you have a definition like this: ITEM 1 1 OPEN SHORTCUT O SUBITEM 1 1 1 Documents SHORTCUT D The ITEM's SHORTCUT will be ignored. DRAWBACKS 1. In version 0.7 text length is not adjusted to the longest length of an ITEM or SUBITEM to get around this you will have to quote NAMEs to the largest length. eg. ITEM 1 1 "TEST " ITEM 1 2 Documents 2. When NAMEs are quoted in version 0.7 the program (when creating the actual structures) will insert an underscore into all white spaces. So if you have an ITEM's NAME define as FILE the program will create structs like FILE_menu. If on the other hand the ITEM's NAME is defined as "FILE " then the structs will be created as FILE____menu, note four underscores, one for each white space and one for _menu. 3. As of this writing I don't really consider this description as a DRAWBACK but... The program ALWAYS adds space to the right side of an ITEM/SUBITEM for Intuition's Command key sequence, Right AMIGA-A commandkey. 4. In version 0.7 menus created are for HIRES screens (640-200). The WIDTH keyword does not affect the screen width (as of yet). EXAMPLES ------------CUT---------------- MENU 1 Project ITEM 1 1 OPEN SUBITEM 1 1 1 Documents SHORTCUT D SUBITEM 1 1 2 General SHORTCUT G MENU 2 Misc ITEM 2 1 Cut SHORTCUT C ITEM 2 2 Paste SHORTCUT P ------------CUT---------------- MENU 1 Project MENU 2 Misc ITEM 1 1 OPEN ITEM 2 1 Cut SHORTCUT C ITEM 2 2 Paste SHORTCUT P SUBITEM 1 1 1 Documents SHORTCUT D SUBITEM 1 1 2 General SHORTCUT G ------------CUT---------------- Want to be a BETA tester, abuse my program and be the first on your block with the latest version ? Would you like to have something added ? Do you have a bug report (please let me known if one is found) ? Please, Contact me. CIS: 72567,2601 BIX: bmackey or at BBS's that I frequent: Lion's Den: 516-399-1928 AmiAdvocat: 615-776-5438 CA-AUG: 216-642-3344 Deep Thought: 919-460-7430 Lattice's BBS: 708-916-1200 It would probably be faster if you used my mailing address: Bruce Mackey 4040 Avoca Ave Bethpage NY 11714 516-935-2075 or 516-935-5292 REVISON HISTORY Version Revision ------- -------- 0.5 initial release (6-14-90) 0.6 internal added assembler support added `ASM' and `LASM' command line switches 0.7 fixed bug with improper WIDTH size fixed bug with erroneous SHORTCUT commands END REVISON HISTORY Lattice is a tradmark of Lattice Incorporated. MetaComCo is a trademark of MetaComco plc. A68k (c) Brian R. Anderson, AmigaDOS version by Charlie Gibbs.