The menu code was revamped about 2 years ago. I have a personal document to show how to call all the parameters. If I had access to the wiki to update it, I would change the relevant parts and include new examples for each in a simple way.
I am attaching the basic command syntax.
Essentially there is no longer a limit to a single menu. The old menu system is mapped to "form0" (by internal name) and most of the old commands still work (like setting window transparency; which doesn't work for the auxiliary menu forms), but there are slight changes.
menu image pixline (gone)
menu shape (limited: can do basic shapes, but no "effects" - there are no rounded corners, no dashed lines (I created work around methods for dashed lines)).
colors are now hexadecimal values (which I have a remap routine) - only a few named colors work out of the original selections.
menu widgets *must* have a unique name now (in the past you could have all your labels with the same name; now the menu will not work).
Cheffe, posted a nice step by step walk through of most commands. I played with it further to test the other settings, and I really like it.
Something that is needed, IMO, is a translation routine to remap old commands into the new format. I have been toying with creating a process for that. If nothing else, then a sort of "Rosetta Stone" to show how to do the old commands with new code examples. To date there are a few converted menu snippets floating around, but it can do so much more than mimic the original menu system.
Most of the old functions are there:
menu form (was menu window)
button
text
edit
listbox
combobox
checkbox
Additionally, there are:
multiple forms (can have several windows defined at the same time... it is no longer limited to a single menu)
panel (a widget that holds a group of widgets). Panels can be used for aesthetics, or for functionally grouping widgets.
radio buttons
Each widget has properties that can be changed on the fly using:
menu setprop [unique widget name] [property value pair]
You can move an item from one menu to another dynamically by using "menu setprop [widget name] parent [other widget name]".
There is a "namespace" element to menu defaults - to protect what you write from taking over a parallel process (parent/child menu in a called library - for instance) (menu pushdef/menu popdef)
So you can have multiple forms (old system allows a single menu), and all items can be set to be visible or not individually.
A form can have a cluster of widgets in a panel. The panel can be moved between forms by changing it's parent.
Defaults for fonts and colors can be inherited. There are a few things where the default can't be inherited, so you must set the property for that widget after it's creation (think initial window... it can't inherit a background color, so you must set the background color after it is created).
There are working radio buttons (same as a combo box, but visually different). The related group of radio buttons are in a panel.
I am attaching the basic syntax listing for most of the commands - I probably have overlooked something in my organization of the material.
Gaderian