Using ring menus / MENU interaction blocks |
The COMMAND KEY(key-name) block (without an option text) defines a menu action handler with a set of instructions to be executed when an action is invoked. The KEY() clause defines one or several accelerator keys separated by a comma. The specified key name must be one of the virtual keys.
For backward compatibility, a coma-separated key list is supported in the KEY() specification. Consider using a single key for new developments, or prefer accelerator definition with action defaults.
While a COMMAND KEY(key-name) "option-name" (with option text) defines the name of the action with the option text (converted to lowercase), a COMMAND KEY(key-name) (without option text), defines the action name from the last key in the KEY() list, converted to lowercase letters. For example, with COMMAND KEY(F10,F12,Control-Z), the name of the action will be "control-z".
Action defaults will be applied by using the key name of the KEY() clause. With a list of keys, the last key name will be used to apply action defaults, because it defines the action name.
The KEY() clause can specify up to four accelerator attributes for the action. The keys defined in the program will take precedence over accelerators defined with action defaults.
By default, COMMAND KEY(key-name) actions are not decorated with a default action (i.e. a button in the action frame will not appear for these actions). However, by defining the text attribute within action defaults, the default action view button will be visible. This allows you to decorate existing COMMAND KEY(key-name) clauses with graphical buttons without changing the program code.
To write abstract code without decoration in your programs, use the ON ACTION clause instead of COMMAND [KEY], except if the action view must get the focus.
In TUI mode, actions created with COMMAND [KEY] do not get accelerators from action defaults; Only actions defined with ON ACTION will get accelerators of action defaults.