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! |