Version 1.0 Completed: 00-Sep-92 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Preliminary construction. - Completely re-written from original attempt. - Beta testing and code improvements. - Update from SAS/C 5.10b to SAS/C 6.00 - Menu preferences: 5 Menus with 10 items each: Title: 10 characters Text: 15 characters Command: 255 characters Version 1.1 Completed: 00-XXX-00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Even more code improvements. - Added new Project menu items: Project Edit Menus... E Load Prefs Save Prefs ~~~~~~~~~~~~~~~ NewShell Launcher... L ~~~~~~~~~~~~~~~ Video Mode » -------------------------> NTSC Format Disk » --------> DF0: PAL ~~~~~~~~~~~~~~~ DF1: ~~~~~~~~~ Quit Q DF2: Boot NTSC DF3: Boot PAL ~~~~~~~~~ FFS NOICONS QUICK ~~~~~~~~~ Install Load and Save Prefs use the default path and name. You must use the interface to specify a different one. NewShell will open a new Shell window. You may edit line 2 of the prefs file to either `NewShell' or a custom string like: `NewShell "CON:0/100/100/100/Blah/CLOSE"'. Launcher is another little time saver. It will open a file requester allowing you to choose a program and have SM launch it for you. This is handy to load a program that is on a different volume or imbedded in multiple directories. Good For: "DF3:Downloads/NewDemo.exe" or "DH0:Programming/.C_Files/My_Prog/My_Prog1.0" Format Disk is just what it says. You can select certain options if you so desire. By default, FFS and NOICONS are checked. To format a disk, select the device from the menu. Multiple formats can be going simultaneously. NOTES: Selecting only install will still format the disk with the OFS and put a Trashcan icon on the disk. You must type "Install DFX:" in the shell. I will fix this in a later version, I don't know how just yet and not double-up the drive sub-menus. The disk name is line 7 of the preferences file. Quotes ARE necessary if you have a space in the name. Video Mode allows you to switch between NTSC and PAL via external programs. Boot NTSC and Boot PAL set the ROM Tags and after a reset the appropriate mode will be used. This is very useful for European megademos that have custom boot blocks. Paths: The programs are found in the default preferences path and may be substituted for any of your choice. To do so, you must edit your preferences file with a text editor. Lines 3 through 6 are the program paths and command line arguments. - Fixed bug in load and save code. Version 1.2 Completed: 25-Oct-92 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Added additional menu items. SM now has more menu items for users that use many programs under the same catergory. There are now 5 menus with 20 items each: Title: 10 chars Text: 20 chars Command: 255 chars This allows five additional menu-item text characters and ten additional menu-items. This should satisfy all users. It will also allow for more sections of similar programs, such as a diskcopy section of all combinations of drives in the bottom portion of a ¼ filled menu that was sitting empty. - Created a new Graphical User Interface (GUI). There are now two LISTVIEW_KIND gadgets, one for menu text and one the commands. The first item in the text gadget is the menu name, it is blank in the command gadget. All twenty items are in the gadgets with the menu title and ten items visible; all others may be scrolled into view. Clicking on an item or command will activate the string gadgets and place the item and command in them. Menu title's are selected the same way. Once an item and command are selected, the text gadget is selected for input. Pressing RETURN will jump to the command gadget. Pressing RETURN here will enter the menu item into the menu and gadget and de-activate the string gadgets. Below the string gadgets are two new gadgets: Swap Items and Clear Items. These are only active if a menu item is active in the string gadgets. `Swap Items' is a check-box gadget that, when checked, will allow you to swap the positions of two items in the same menu. After checking, click on the first item, then click on the item to switch with. The gadget will stay checked for multiple swaps. You must un-check the gadget to stop swapping and/or to change menus. `Clear Item' will erase only the currect item text and command strings, not the entire menu. - Fixed font and centering bug. SM will now handle larger title bar fonts with more than 8 pixels. The window will be adjusted and sized correctly to fit on the Workbench screen like the Workbench window does: Title bar is placed below screen title, height is adjusted for larger fonts, if font is too large the window will be moved up to accommodate. - Fixed a major menu text bug that plagued SM from day one. SM could not have been released until that problem was fixed. Version 1.3 Completed: 26-Oct-92 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - If no Shell window is open or one not with the title `AmigaShell', a requester will now open asking if you would like one opened. The NewShell uses your system default dimensions. - Fixed a problem with the Menu cycle gadget. If you clicked it while holding either shift key the gadget would cycle backward corretly, but the menus would still cycle forward. This now works correctly. - Menu titles may now be twelve characters long. Ten was always a few short for my needs, so I added two more. - A requester now asks if you are sure about clearing one or all menus. - SM now checks if you made any changes to your preferences before loading or quiting via a requester. Version 1.4 Completed: 02-Nov-92 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Selecting Load or Save from the menu now opens a file requester like selecting one of the gadgets does. The menu always saved to the default prefs file. This caused some problems if you wanted to save to a different file and chose the menu Save instead. No longer. - Fixed a few small bugs and sped up part of the code. - Added an intuition interface for path preferences. Selecting the new `Paths' gadget from the main window will open a window with all user definable options for easy editing. Using a text editor is no longer necessary to change any preferences. Quotes are still necessary if there is a space in a command path or `Disk Name'; arguments are an exception. - Added the use of the Asl file requester via an intuition interface. Selecting the new `Requester' gadget from the main window will open a window with all possible requester options. `Title' is for the requester title bar. `Path' is the default path to use. `Name' is the default name to use. If a filename is specified, then the `Directories Only' option is disabled. `Pattern' is for including/excluding files. If a pattern is specified then the `Directories Only' option is disabled. Some Patterns: - #? Everything - #?.info Only files ending in ".info" (icons) - (#?.info|#?.doc) Only icons and doc files - ~(#?.info) Everything EXCEPT icons - ~(#?.info|#?.c|#?.iff) Only icons, c files, and IFF files - Sea#? Files starting with "Sea" - #?Game#? Anything with "Game" in it - [d-l]#? Only files between D and L - ~[j-m]#? Everything EXCEPT file bewteen J and M `Save/Create File' will create a file or directory if it doesn't exist. `Directories Only' will only display directories. This options disables `Name' and `Pattern'. `OK Text' is the user definable text for the OK gadget. You can leave all options blank to open a requester to quickly select a file to pass it to the program. - Fixed some small bugs with some of the string gadgets. - Fixed/Added the ability to have arguments after the requester structure. There is still the problem with not having the ability to select multiple files, for example, to create a complete LhA archive in one step. What needs to be done is: 1) Use the requester to select the destination and archive name, 2) Append the source path to the command line. ex: LhA -2 a {req[PTH=VDK:][SAVE][TXT=Save]} DH0:Uploads/#? Same for DMS disk archiver. The source disk will always be what you have specified in the command line, unless you change it. Version 1.5 Completed: 06-Nov-92 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Can now swap menu items from different menus. This should have been done originally, so now here it is. - Fixed these bugs in the Asl requester: - Now correctly adjust the the height for all flags. - Now uses the correct path for different requester. Added this new feature: - If SaveFlag is set it now checks if the file already exists and asks if you wish to overwrite it or not. - After alot of testing with the requester, multi-select can be used in some situations. To view an entire directory of pictures, for example, open the requester to the desired directory and use a space, " ", for the filename. This will only work if the program supports reading an entire directory. - Added command line arguments: `-O' Will open the main window after loading. `-P name' Will load the specified prefs file. Complete path is required. `-E # #' Will execute the command for the specified menu and item. Version 1.6 Completed: 09-Nov-92 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Added a new gadget to the Paths window: `Prefs Path'. This gadget allows the user to put the prefs file where-ever he may want. The default is: :Prefs/Env-Archive/ShellMenus In previous versions the path was ENVARC:ShellMenus which put the file in RAM: instead to disk. I had changed my assign to put it on disk in the default path. - Due to an error on my part and lack of testing a function, I missed a major bug dealing with the Shell window. SM detached from the Shell window so it can be closed, but SM wouldn't quit. Since I can not find a workable way to check if the Shell window was closed, I added a port checker. When a duplicate copy of SM is executed, a requester opens with two new gadget options: `Quit' will terminate both copies of SM. It will still check for changes and allow you to save them before quiting. `Pop Up' will bring up the active window, or if none are open, will open the main window. This will allow you to save and then quit if you closed the Shell window. `Cancel' will do nothing. - The default paths are as follows: Prefs Path: :Prefs/Env-Archive/ShellMenus Window Dims: CON:0/11/640/150/Shell Menus Output Window/AUTO/CLOSE Disk Name: Empty - When `Swap Items' is first selected all string gadgets are turned off so you know you have to pick the two items to swap with, not to confuse with the item in the string gadgets. Fixed a small "active" bug when swapping. - The file requester now remembers the previous path for preferences and Launcher instead of always using the original starting path. - A file header is now put in all preferences files to eliminate loading of wrong files by accident. The header is `Shell Menus Preferences File' and needs to be put in all old prefs files via a text editor before it can be loaded. - Added `FR' gadgets in Path and Requester windows to open a file requester to get a path instead of typing it in. Time saver. Version 1.7 Completed: 22-Nov-92 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Fixed small bug in file requester. - Added a new requester type: {arg} This type opens a small argument window to allow you to enter commamnd line arguments or edit your defaults. Also allows multi-select of files with a certain pattern. `Message' is for a string to describe what input is expected and for what file. `Arguments' is your default command line arguments that can be edited when the item is selected. You must leave a space after the last argument so the file-part is copied over correctly. - Multiple requester types are now available in command lines. Updated Requester window to accommodate by spliting it into two sections. To edit a requester place the cursor at the beginning of the structure and hit the `Requesters' gadget to edit it. I hope to add an all intuition interface to edit the structures. If you specify multiple {requester} structures you must seperate them by a space to ensure good results: {req...} {arg} {req...} {req} {arg...} Version 1.8 Completed: 27-Dec-92 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Added `Undo' gadgets to the Path and Requesters windows. This gadget will undo all changes made to the current gadget contents to their original state. - Added user definable command key shortcuts to all menu items. To get total user defintion I also made the Project menu keys user definable. This was done for times when you want to use the hard-coded keys for other programs, such as `N' for NewZap, instead of NewShell. Not all Project menu items need to be defined nor are all items definable. Duplicate keys are checked for at loading and upon entry in the new gadgets. When loading, duplicate keys are set to NULL with no notification to the user. If you notice, I purposely left space for these new gadgets. - Added an `FR' gadget to the main window next to the Command string gadget to ease the entrance of complete paths. - Added `About...' menu item to Project menu for legality reasons. Version 1.9 Completed: 17-Jan-93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Fixed a bug in the preferences loading routine that would not create the menu strip if the preferences file was not found. - The menu strip width dimensions will now conform to the longest item of each menu and the title width also adjusts to the length of the title. The same maximum lengths are still enforced to ensure ease of menu strip creation without worrying about dimension problems. - The Requesters structure editor is now all intuition controlled via six new gadgets: `Next' will move to the next structure if exists, otherwise it is disabled. `Last' will move to the previous structure is exists, otherwise it is disabled. `Append' will add a blank {req} structure to the end of the command line. You will stay at the current structure if one or more exists. If the command line previously had no strucuture(s) then it will become the active one. `Insert' will insert a blank {req} in front of the current structure and the new blank one will become the active one. `Clear' will clear all gadgets for the particular type of structure. `Delete' will remove the current structure and activate the next one if it exists. - Improved the handling of structures when executed. Spaces are no longer necessary between structures and you don't have to leave a space after the last argument in the {arg} structure. You can still leave spaces for ease of reading the command line. - Created a new preferences editor. It is divided into three sections: Operation, Keys and Paths. The same user definable preferences are now grouped under it's appropriate catergory for ease of finding and knowing what affect it will have. Version 2.0 Completed: 08-Feb-93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Entire menus can now be swapped by selecting the menu titles. Also made some updates to the code for better handling of swaps. - Created a new type of structure: {prf}. This new structure allows for each program to have it's own defined preferences: output window dimensions, multitasking or single-tasking, and auto-close or input closed output window. - Created a better way to block the Shell window by disabling the entire menustrip instead of blocking all input. - Fixed a bug in the -E command line argument that wouldn't attach the menustrip to the Shell window if -O argument wasn't used also. - Fixed a huge bug in the execute command section. The addition of the {prf} created a problem with command line arguments and helped find an old bug. Also spruced up the creation of the command line. - Added better error handling when loading and saving the prefs file. Also put the Keys before the Paths in the prefs file to match the order of the Preferences Editor. Version 2.1 Completed: 14-Mar-93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Fixed a bug in the menustrip creation process that would lose 5K of RAM. If use the command line argument -O everything was fine. If didn't use it then opened the window later, the menustrip was duplicated but not free'ed when you quit, thus losing 5K of RAM. - The prefs file now uses the IFFParse library. Error checking is quite extensive and checks the file if it is a Shell Menus prefs file and of the correct version before clearing any preferences data. - Fixed a bug that would try to close the main window when it was already closed when loading a prefs file. - Fixed some bugs in the Requesters window that would activate/de-activate the wrong gadgets at the wrong time. - Implemented Multi-File selection. At this time it does one file at a time for all programs. The multifile struct MUST be the last structure in the command line. Multitasking is disabled for this options. - Updated the structure extractor to allow the use the of brackets and braces ([, ], {, }) in the command line. The old version wouldn't allow these, preventing patterns like: [f-m] which would only display names of files that start with letters between F and M. - Updated routine to ModifyIDCMP() of the Shell window so it won't interfere with other programs, or at least ones that don't use IDCMP_MENUPICK and IDCMP_CLOSEWINDOW. IDCMP_CLOSEWINDOW may be deleted at any time. Until I find a better way to check if the Shell was closed, it will stay so you can't click close the window. - Fixed two bugs in the Requesters window dealing with the Append and Insert gadgets. The addition of the prefs structures threw off the extraction and re-construction of the command line. - Doubled the string buffer size of the Menu Command from 256 to 512 bytes. It was too easily over filled with only three or four 4 fully defined structures and caused a visit from the guru. If need be, it can easily be increased in future version. - Added `Other...' sub-item under Format Disk to open an argument window to enter other device names (DH0:, RAD:, etc.) to format. Version 2.2 Completed: 19-Apr-93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Updated the handling of multiple copies being run simultaneously because of the Shell window being closed, or not. It now double checks if the Shell window is the one it found when SM was first run so it doesn't try to close the old window and cause a guru. It now also handles POPUP better for the Main, Argument, Requesters, and Prefs windows better and re-attaches the menu- strip correctly. - Wrote a new documentation file in AmigaGuide format. It wasn't worth writing until now because I made so many additions it would have required making extensive changes to the guide every few versions. - The command line is now encased in quotes before execution so spaces can be used in paths and filenames. - Added `Save Then Quit' to the requester before quiting. - Added StopQuotesHere structure, {""}, for better handling of command line arguments with the quotes encaser. - Updated loading and saving routines by compressing lines. - Fixed bug in -P argument that when loading a non-existant file wouldn't attach the menustrip. - Updated Append and Insert in Requesters Editor. It used to always add a {req} structure, but know it adds one of the same type as the Type: xxx gadget is set to. - Added MoveScreen() to bring the Workbench and all the custom screens back to the top and left edges in case they were moved. - Added SetWait() and ClrWait() to use with BlockWindow() and ReleaseWindow() but can't use them until I get 3.0 include files. - Updated the Requesters Editor. The Type: xxx gadget now include Prf for the preferences. The Prf gadgets are off until moved to and the Control gadgets are disabled accordingly. If no Prf structure was found in the first scan, then {prf[MULTITASK][AUTOCLOSE]} is appended. - After executing a command SM now returns to the correct place: - CheckIDCMP if picked from the ShellWindow - MainBringUp if picked from the MainWindow - Broke the 100,000 byte mark. - Fixed a problem in the ExecuteCommand section. If the user manually put a structure, other than Prf, after a Multi-File structure it would not ignore those structures, Prf included, and put the files right after the Prf structure. It now totally ignores them like it should but still extracts from the Prf structure. - More updates to ExecuteCommand section. - Changed Code=NEAR to Code=AUTO in scopts. This fixed a few bugs that had been plaguing the program. Version 2.3 Completed: 09-May-93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Updated strings and error handling in LoadPrefsCheck: "complete path" is not a Shell Menus prefs file. "complete path" prefs file is an old version. Use Convert Prefs to update to the latest version. - Fixed some bugs in the port checker when use POPUP. - Fixed another bug in ExecuteCommand. - Made so input is allowed, again, in the output window to wait for user input to start a function, like DMS waits for disk insertion. - Fixed bug in FormatDisk: caused by the quotes encasing. - Updated the Block/Release Shell window code: Depth=BlockShell(ShellWindow,Depth); Depth=ReleaseShell(ShellWindow,Depth); - Fixed bug that caused MANY gurus to occur when executing commands. Original: ifh=NIL: if (SystemTags(txtbuf, SYS_Input,ifh, SYS_Output,ofh, SYS_Asynch,TRUE, SYS_UserShell,TRUE, TAG_DONE)==-1) MyEasyRequest(NULL,"Can't open output window\nor problem with the program.","Continue"); Changed: if (SystemTags(txtbuf, SYS_Output,ofh, SYS_Asynch,TRUE, SYS_UserShell,TRUE, TAG_DONE)==-1) MyEasyRequest(NULL,"Can't open output window\nor problem with the program.","Continue"); Updated: ifh=NULL; if (SystemTags(txtbuf, SYS_Input,ifh, SYS_Output,ofh, SYS_Asynch,TRUE, SYS_UserShell,TRUE, TAG_DONE)==-1) MyEasyRequest(NULL,"Can't open output window\nor problem with the program.","Continue"); It needed a handle to close or it would cause these gurus: FileHandle Closed More Than Once Memory Freed More Than Once Memory Header Not Located Address Error - Commented out "Save Then Quit" so I could release it. - Changed the default path to ENVARC:ShellMenus/ - Released to the public, finally! Version 2.4 Completed: 18-May-93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Updated the routines to get the path and filename out of CompletePath by making ExtractPath() and ExtractFile() subroutines. Much easier and less code. - Now uses a standard 640x200 or 640x400 screen. Had a problem with the file requester being too tall so it had to move itself up from the 11th line. - Changes in Requesters Editor and {req} structures: - Changed "Name" to "File" and [NME= to [FLE= - Vertically centered the FR gadget between Path and File - The FR gadget now gets the Path and File in one step and extracts them to the appropriate gadgets - Created FindStruct() to ease the search in command lines for structures. - All command line structures will be remembered for CommandFR and the 4 video mode files so they won't have to be recreated if the file is changed using the FR gadget. This was very unhandy for the video display mode files. - Fixed a bug in the Requesters Editor that when appended a new structure after making a new one without moving to a different one to create the commandline struct, it would erase the first one's data. - Created SetItem() to CHECK_ITEM, UNCHECK_ITEM, ENABLE_ITEM, and DISABLE_ITEM menu items quick and easy. - Updated Format options: Deleted: All options from Format subitems Changed: FFS -> Fast File System Default INTERNATIONAL -> International Mode DIRCACHE -> Directory Cache NOICONS -> Put Trashcan QUICK -> Quick Format Install -> Install Disk Added to Operation in Prefs: Default Format options... Fast File System Put Trashcan International Mode Quick Format Directory Cache Install Disk Added: Options Window... to Format subitems This window allows you to change the settings before every format, if set, and/or to become new settings. These prefs are now set in the menu and saved in the prefs file. - Added the ability to not display the pattern gadget in the file requester via Pattern On gadget in the Requesters Editor. [NOPAT] - Got "Save Then Quit" to work finally. It wouldn't work the old way I extracted to the path. Version 2.5 Completed: 29-Jul-93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Now uses gadget images for File and Folder instead of the generic FR gadget text. - Fixed a bug in the Type: xxx cycle gadget that wouldn't cycle correctly when pressing Shift to go backwards. - Added: "Press [RETURN], [C]ontinuous, [A]bort or close window..." to abort a multi-file execution, and "Press [RETURN] or close window..." for non-multi-file non-auto-close. - Incorporated my GT_SetMenuAttrs(). - Now checks for what devices exist for the Format submenus and disables the non-existant devices. - Fixed a small bug when swapping items it would turn Requesters on when it shouldn't, it wouldn't turn off Clear Item at the correct time, made the code smaller. - The Main and Prefs screens now open to OSCAN_TEXT width and height and centers the display. Version 2.6 Completed: 29-Aug-93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Made better loading and saving routines that uses less code and is faster. - The Preferences Editor Undo is now global, not just for the currect section. - Added CheckForVisitors() for successful closing of the Public Screens. - Fixed GetVisualInfo() bug that caused the `Swap Items' gadget to loose it's imagery because it was updated too often. - Now uses Workbench font for the menus. - Fixed a small bug in Requesters Editor dealing with `Auto-Close'. - Added `Same Window' and `Clear Window' to Requesters Editor to allow the user to use the same output window for all Multi-File operations, and to clear the output window between files. [SAMEWINDOW] and [CLEARWINDOW] - Now spread across multiple files for easy updating. - Took out PopUp option when run more than one copy because the modules can't goto ... like they used to. - Created new CheckChanges() for a more specific message on what was changed. - Created UpdateMenus() and got rid of the stpcpy()'s in CopyToMenus:. This resulted in less code, the ability to use NM_BARLABEL and only have the shortcut key image displayed for only those items that have a shortcut key. `---' is used to define NM_BARLABEL. - Updated string gadgets to handle `---' appropriately: Key and Command off when Text is `---', on when not. - Changed the maximums to: 10 menus 40 items each - Now uses dynamic menus. The menustrip is as long or short as the user has defined. The preset empty items are no longer there for a much cleaner and better looking menustrip. - Memory usage is cut down to a minimum since the dynamic menus only allocates the memory it needs. - The dynamic menus also changed the prefs file AGAIN to accommodate the change. If was left the original way, the prefs file would be 220K+. Version 2.7 Completed: 05-Oct-93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Finally got it internally localized but no other catalogs. Always had the strings but not the code to use them. - Now uses CreateNewProc() to detach from the Shell instead of using cback.o. - Fixed a problem with the new dynamic menus causing the listviews' imagery to to mess up with empty menus. - Created ArgumentParser() to use ReadArgs() function for better and more "correct" command line arguments. -O -> OPENEDITOR/S -P -> PREFSFILE/K -E -> EXECUTE/K/N,/N OPENSHELL/S (new) OPENSHELL/S,PREFSFILE/K,EXECUTE/K/N,/N,OPENEDITOR/S - Added some checks before executing commands that could cause a problem when use the EXECUTE argument. Mostly it is for cosmetic reasons. - Now has AmigaGuide support at the press of the Help key. - When using Multi-File it will now fill the command line to the maximum length with filenames. This speeds the process since it won't have to load the program for every file. This saves a lot of time since it will only have to load the program when the command is full. - By using the new command line argument CUSTOMSHELL , other names besides `AmigaShell' may be used for Shell windows. This allows the use of Csh and such programs that changes the name of the Shell. Shell Menus must be run AFTER these programs. OPENSHELL/S,CUSTOMSHELL/K,PREFSFILE/K,EXECUTE/K/N,/N,OPENEDITOR/S - You can now switch menus to a certain one by pressing the numeric keys on the main keyboard or the numeric pad. 0 is menu 10.