script (MEL) |
Only available in MEL |
addPanelCategory |
In categories: Windows, Misc. UI |
Go to: Synopsis. Return value. MEL examples.
int addPanelCategory( string $name, string $insertAfter, string $cmd )
Add a new category to the Panels pulldown menus. The Panels
pulldowns are the menus specified per viewport which allow the user
to switch between different camera views, or different layouts, etc.
The new category is defined by a new button which cascades into a
separate user-definable pulldown menu.
For example, you've defined your own camera type called "Stereo"
and you want all your stereo cameras to appear under a separate
category in the Panels pulldowns for convenience. What you can do from
the plug-in where you define your cameras of this type when the plug-in
first loads is to issue a MEL command of the form:
addPanelCategory( "Stereo", "Perspective", "buildStereoPulldown" );
The preceeding call adds a new button called "Stereo" to the Panels
pulldown menus, with the new button situated immediately after the existing
"Perspective" buttom. The Stereo button displays a cascade icon and when
selected, a user-implemented MEL procedure "buildStereoPulldown" is invoked
to allow the user to define the entries for the cascading menu. An example
for building a Perspective list might be:
global proc buildPerspectivePulldown( string $parent, string $panel )
{
string $cameras[] = `listCameras -perspective`;
// Rebuild menu
//
setParent -m $parent;
menu -e -deleteAllItems $parent;
for ($camera in $cameras) {
menuItem -l $camera -command
("lookThroughModelPanel "+$camera+" "+$panel);
}
}
For a type of camera other than perspective, the user may want
to define some special means for identifying the camera type.
This apparatus is not specific to cameras. It is a general mechanism
for adding a new cascading menu item to the Panels menu. For example,
it could list custom model panels as well.
The user will most likely add the new category upon loading the
new data from their plug-in code. To determine if a given category
has already been added, the command listPanelCategories() is provided.
To remove a category, the removePanelCategory() command is provided.
None
Arguments
Variable Name |
Variable Type |
Description |
$name | string | The name of the category that appears on
the new cascading button when added. The
name specifies the label.
|
$insertAfter | string | The menu item to insert immediately after.
This is the label value for the button,
and examples are "Perspective", "Layouts",
etc. Since the Panels menu may not have
been built yet, the check that the $insertAfter
button exists is not performed until the menu
is posted.
|
$cmd | string | A MEL command to be executed when the
new category button is depressed. typically
this will build an on-demand pulldown menu.
|
addPanelCategory( "Stereo", "Perspective", "buildStereoPulldown" );