Short: WBMenuEditor Author: C.R.A.N.E (TecniMan) Uploader: AmigaCrane gmail com (TecniMan) Type: util/wb Version: 1.0 Requires: AmigaOS 3.2.x, MenuTools Architecture: m68k-amigaos >= 3.2.0 Distribution: Aminet WBMenuEditor ============ Visual MenuTools editor for AmigaOS 3.2.x. WBMenuEditor provides a simple graphical interface for editing the ARexx MenuTools script normally located at: SYS:WBStartup/MenuTools MenuTools is used by AmigaOS 3.2.x to add custom entries to the Workbench Tools menu and to create additional user-defined menus and submenus. WBMenuEditor makes this easier by avoiding manual editing of ARexx MENU ADD lines. About this project ------------------ WBMenuEditor is my first program. It was developed in JavaScript using NodeAmiga. The original code was generated with help from GPT as JavaScript for NodeAmiga. After that, several parts had to be adjusted manually, tested on a real AmigaOS/Workbench environment, corrected, and refined through trial and error until the program worked as expected. This project was created mainly to solve a practical problem: AmigaOS 3.2.x includes MenuTools, but editing its ARexx script by hand is not very friendly. WBMenuEditor tries to make that process simpler and safer. Distributed versions -------------------- WBMenuEditor is distributed as compiled Amiga executables, not as a JavaScript script that requires NodeAmiga at runtime. Two executable builds are provided: WBMenuEditor_000 Version intended for standard 68000-based Amiga systems. WBMenuEditor_020 Version intended for 68020 or higher systems. Because these are compiled executables, the user does not need to install NodeAmiga or the NodeAmiga libs drawer in order to run WBMenuEditor. Tested system ------------- This version has been tested on: Amiga 1200 68030 accelerator AmigaOS 3.2.3 So far, I have not found any problems in that setup. Features -------- - Visual editor for MenuTools MENU ADD entries. - Supports the default Workbench Tools menu. - Supports user-created menus. - Supports submenus. - Supports program entries, separators, and WBLoad entries. - Generates valid ARexx MenuTools syntax automatically. - Automatically creates internal MENU ADD names from the visible menu title. - Creates a backup before saving. - Does not modify Startup-Sequence. - Does not modify MenuTools.info. - Allows selecting programs through the ASL file requester. - Shows the currently selected item in the list. - Uses confirmation dialogs before destructive actions when supported by the compiled NodeAmiga runtime. Requirements ------------ - AmigaOS 3.2.x - MenuTools installed in SYS:WBStartup/ - One of the supplied WBMenuEditor executables: WBMenuEditor_000 WBMenuEditor_020 NodeAmiga is not required by the end user when using the compiled executable versions. Recommended installation ------------------------ The program does not need installation. Just copy it wherever you want and run it. Personally, I like to keep it in: Workbench:Prefs/ You can also create a drawer for the application, for example: MakeDir SYS:Utilities/WBMenuEditor Then copy the executable you want to use into that drawer: Copy WBMenuEditor_000 SYS:Utilities/WBMenuEditor/ or: Copy WBMenuEditor_020 SYS:Utilities/WBMenuEditor/ Then run it from Workbench or Shell. If launched without arguments, WBMenuEditor expects the MenuTools script to be located at: SYS:WBStartup/MenuTools Basic usage ----------- The left side of the window shows the current menu structure. Typical rows are displayed as: Default menu (Tools) Prg Help Sep ---------------- Menu: My Tools Prg Shell Submenu: Editors Sub TextEdit The right side of the window contains the editable fields for the selected entry. The file is not modified immediately while editing. Changes are kept in memory until Save is pressed. Buttons ------- Add Item Adds a new program entry to the selected menu or submenu. Add Menu Creates a new custom menu. Add Sub Creates a submenu inside the selected custom menu. Add Sep Adds a separator line to the selected menu or submenu. Up / Down Moves the selected item, menu, or submenu within its valid group. Delete Deletes the selected item, menu, or submenu. Deleting a menu or submenu also removes its contained entries. Save Writes the updated MenuTools script to disk after creating a backup. Reload Reloads the file from disk. If there are unsaved changes, confirmation is requested. Quit Closes the editor. If there are unsaved changes, confirmation is requested. ... Opens a file requester to select a command or program. Entry types ----------- Command Runs the selected command or program through AmigaDOS/Shell using address command. Example generated output: MENU ADD NAME Shell TITLE '"Shell"' CMD "'address command ''SYS:System/Shell'''" WBLoad Runs the selected program through C:WBLoad, similar to launching it from Workbench. Example generated output: MENU ADD NAME MultiView TITLE '"MultiView"' CMD "'address command ''C:WBLoad SYS:Utilities/MultiView'''" The selected path does not need to include the .info extension. WBLoad works with the base file path. Sep Creates a separator line. Example generated output: MENU ADD NAME MenuSeparator TITLE '"~"' CMD "" Menus and submenus ------------------ MenuTools creates custom menus and submenus using backslash paths in the TITLE field. For example, an item inside a custom menu: TITLE '"\\My Tools\\Shell"' An item inside a submenu: TITLE '"\\My Tools\\Editors\\TextEdit"' WBMenuEditor handles this automatically. The user only needs to edit the Menu and Sub fields in the interface. Important notes --------------- WBMenuEditor only edits MenuTools-compatible MENU ADD entries. It does not edit the built-in Workbench menus such as: - Workbench - Window - Icons It also does not patch Workbench, does not install commodities, and does not alter Startup-Sequence. Empty custom menus cannot be represented in the final MenuTools ARexx file unless they contain at least one entry, because MenuTools creates menus through MENU ADD lines. Backup ------ Before saving, WBMenuEditor creates a backup next to the edited file: SYS:WBStartup/MenuTools.bak To restore manually: Copy SYS:WBStartup/MenuTools.bak SYS:WBStartup/MenuTools Applying changes ---------------- After saving, MenuTools or Workbench must be restarted for changes to become active. The simplest method is usually to reboot or restart Workbench. Included source --------------- The program directory also includes the JavaScript source file. This is included in case someone wants to study it, improve it, modify it, or adapt it to their own needs. The final user does not need this source file to run the compiled executable. Development notes ----------------- WBMenuEditor was developed in JavaScript using NodeAmiga and then compiled into standalone Amiga executables. Development involved a mix of GPT-assisted code generation, manual changes, real testing, and many small corrections based on how MenuTools and the AmigaOS GUI behaved in practice. The final distributed executables are intended to be used directly by Amiga users without requiring NodeAmiga to be installed. Files ----- Typical distribution contents: WBMenuEditor_000 WBMenuEditor_020 WBMenuEditor.js README.txt The executable files are the compiled versions. The JavaScript source is included for reference, learning, modification or future improvement. Credits ------- WBMenuEditor by TecniMan. Developed with NodeAmiga. NodeAmiga by Juen/R3D + Appendix + Nah-Kolor. First program by TecniMan, created with GPT assistance, manual changes and trial-and-error testing on a real Amiga setup. Dedication ---------- This program is dedicated to the whole Amiga community. It is also dedicated to my family, especially to my life partner Daphne, who always joins me in my crazy ideas, hobbies, Amiga parties and all those little retro adventures that make this world so special. And of course, to PolloHacker and MomoChan. Final note ---------- READ ME OR GURU!