Menu Plug-In Structs
The Structs returned by getGlobalMenuOptions and getEditorMenuOptions have a defined structure.
A menu
Struct has one or more option
members, each containing the following members:
label
—text to display in the menu.component
—name of the component that implements the callback operationoperation
—name of the callback operation to activate when the option is clickedenabled
—a Boolean (with possible values1
|0
) that indicates whether the option is enabled or not, in which case it is dimmed.
It is possible to specify a separator between menu options by defining a menu option with only a label with the value _sep_
. This separator is displayed only if another option follows in the runtime menu. This ensures that if an option is not displayed (for example, it is applicable to a different type of object), that no empty section is displayed.
For example:
[menu] [option] [label] = "Option 1" [component] = "MY_CPT" [operation] = "doOption1" [enabled] = 1 [option] [label] = "_sep_" [option] [label] = "Option 2" [component] = "MY_CPT" [operation] = "doOption2" [enabled] = 0
Example: Building a menu option struct
The following entry builds the Struct for a single user-defined menu option. For more information, see Structs.
entry addOption params struct pMenu: in string pLabel: in string pComponentName: in string pCallbackOperation: in numeric pEnabled: in endparams variables struct vOption endvariables pMenu->option{-1} = $newstruct ;- add a new option vOption = pMenu->option{-1} vOption->label = pLabel vOption->component = pComponentName vOption->operation = pCallbackOperation vOption->enabled = pEnabled return 0 end ;- entry addOption
This can be called by the getGlobalMenuOptions and getEditorMenuOptions operations to build up menu Struct that may contain multiple user-defined options. For example:
pMenu->$name = "menu" call addOption(pMenu, "Option 1", "MY_CPT", "doOption1", 1) call addOption(pMenu, "Option 2", "MY_CPT", "doOption2", 0)