Go to: Synopsis. Return value. Flags. MEL examples.
 scriptedPanelType [-addCallback string] [-copyStateCallback string] [-createCallback string] [-customView boolean] [-defineTemplate string] [-deleteCallback string] [-exists] [-initCallback string] [-obsolete boolean] [-removeCallback string] [-retainOnFileOpen boolean] [-saveStateCallback string] [-unique boolean] [-useTemplate string] 
[string]
      
scriptedPanelType is undoable, queryable, and editable.
This command defines the callbacks for a type of scripted panel. The panel type created by this command is then used when creating a scripted panel. See also the 'scriptedPanel' command.| string | The name of the scripted panel type. | 
In query mode, return type is based on queried flag.
| Long name (short name) | Argument types | Properties | ||
|---|---|---|---|---|
| -exists(-ex) |  |   | ||
| 
 | ||||
| -defineTemplate(-dt) | string |   | ||
| 
 | ||||
| -useTemplate(-ut) | string |   | ||
| 
 | ||||
| -createCallback(-ccb) | string |     | ||
| 
 | ||||
| -initCallback(-icb) | string |     | ||
| 
 | ||||
| -addCallback(-acb) | string |     | ||
| 
 | ||||
| -removeCallback(-rcb) | string |     | ||
| 
 | ||||
| -deleteCallback(-dcb) | string |     | ||
| 
 | ||||
| -saveStateCallback(-scb) | string |     | ||
| 
 | ||||
| -copyStateCallback(-ocb) | string |     | ||
| 
 | ||||
| -unique(-u) | boolean |     | ||
| 
 | ||||
| -obsolete(-o) | boolean |     | ||
| 
 | ||||
| -retainOnFileOpen(-rfo) | boolean |     | ||
| 
 | ||||
| -customView(-cv) | boolean |     | ||
| 
 | ||||
|  Flag can appear in Create mode of command |  Flag can appear in Edit mode of command | 
|  Flag can appear in Query mode of command |  Flag can be used more than once in a command. | 
 // define callbacks for this type and make it a unique type
 // as we don't want two panels sharing the same global data.
scriptedPanelType
    -ccb sampleCreateCallback
      -icb sampleInitCallback
    -acb sampleAddCallback
    -rcb sampleRemoveCallback
    -dcb sampleDeleteCallback
    -scb sampleSaveStateCallback
    -unique true
    sampleScriptedPanelType;
global proc sampleCreateCallback(string $panelName) {
//
//  Description:
//      Create any editors unparented here and do
//      any other initialization required.
//
//      In this example we will only declare a global array to
//        maintain some state information.
//
    global float $gSampleState[5];
}
global proc sampleInitCallback(string $panelName) {
//
//  Description:
//      Re-initialize the panel on file -new or file -open.
//
//      In this example we will only re-init the global array.
//
    global float $gSampleState[];
       $gSampleState[0] = 20.2;
       $gSampleState[1] = 50.5;
       $gSampleState[2] = 34.7;
       $gSampleState[3] = 2.0;
       $gSampleState[4] = 1.0;
}
global proc sampleAddCallback(string $panelName) {
//
//  Description:  Create UI and parent any editors.
//
    global float $gSampleState[];
    columnLayout -adj true topCol;
    separator -style "none" -h 10;
        frameLayout -l "Sliders" -mw 10;
            columnLayout -adj true sampleCol;
                separator -style "none" -h 10;
                floatSliderGrp -l "Property A" -f true
                    -v $gSampleState[0]
                    fsg1;
                floatSliderGrp -l "Property B" -f true
                    -v $gSampleState[1]
                    fsg2;
                floatSliderGrp -l "Property C" -f true
                    -v $gSampleState[2]
                    fsg3;
                separator -style "none" -h 10;
            setParent ..;
        setParent ..;
        separator -style "none" -h 10;
        frameLayout -l "Radio Buttons" -mw 10;
            columnLayout sampleCol2;
                separator -style "none" -h 10;
                radioButtonGrp -nrb 3
                    -l "Big Options"
                    -la3 "Option 1" "Option 2" "Option 3"
                    -select $gSampleState[3]
                    rbg;
                radioButtonGrp -nrb 3
                    -l "Little Options"
                    -la3 "Option 4" "Option 5" "Option 6"
                    -select $gSampleState[4]
                    rbg2;
                separator -style "none" -h 10;
}
global proc sampleRemoveCallback(string $panelName) {
//
//  Description:
//        Unparent any editors and save state if required.
//
        global float $gSampleState[];
       //  Scope the control names to this panel.
       //
       string $control = `scriptedPanel -q -control $panelName`;
       setParent $control;
       $gSampleState[0] = `floatSliderGrp -q -v fsg1`;
       $gSampleState[1] = `floatSliderGrp -q -v fsg2`;
       $gSampleState[2] = `floatSliderGrp -q -v fsg3`;
       $gSampleState[3] = `radioButtonGrp -q -sl rbg`;
       $gSampleState[4] = `radioButtonGrp -q -sl rbg2`;
}
global proc sampleDeleteCallback(string $panelName) {
//
//  Description:
//        Delete any editors and do any other cleanup required.
}
global proc string sampleSaveStateCallback(string $panelName) {
//
//  Description:
//        Return a string that will restore the current state
//        when it is executed.
        global float $gSampleState[];
       $indent = "\n\t\t\t";
       return ($indent+"$gSampleState[0]="+$gSampleState[0]+";" +
               $indent+"$gSampleState[1]="+$gSampleState[1]+";" +
               $indent+"$gSampleState[2]="+$gSampleState[2]+";" +
               $indent+"$gSampleState[3]="+$gSampleState[3]+";" +
               $indent+"$gSampleState[4]="+$gSampleState[4]+";" +
               $indent+"setSamplePanelState $panelName;\n" );
}
global proc setSamplePanelState( string $whichPanel ) {
//
//  Description:
//        This is a convenience proc to set the panel state from the
//        global array
        global float $gSampleState[];
       //  Scope the control names to this panel.
       //
       string $control = `scriptedPanel -q -control $whichPanel`;
       if ("" != $control) {
              setParent $control;
              floatSliderGrp -e -v $gSampleState[0] fsg1;
              floatSliderGrp -e -v $gSampleState[1] fsg2;
              floatSliderGrp -e -v $gSampleState[2] fsg3;
              if (0 != $gSampleState[3]) {
               radioButtonGrp -e -sl $gSampleState[3] rbg;
              };
           if (0 != $gSampleState[4]) {
               radioButtonGrp -e -sl $gSampleState[4] rbg2;
           }
       }
}
//  This script will create an unparented scripted panel, place it
//  in one window, remove it, and place it in another window then
//  return it to the first window.
//
//    Create unparented scripted panel
//
scriptedPanel -unParent -type sampleScriptedPanelType -label "Sample" sampleScriptedPanel;
//    Create a couple of windows and parent the scripted panel to the first.
//
window sampleWin;
frameLayout -lv false -bv false frm;
scriptedPanel -e -parent "sampleWin|frm" sampleScriptedPanel;
showWindow;
window -w `window -q -w sampleWin` -h `window -q -h sampleWin` sampleWin2;
frameLayout -lv false -bv false frm;
showWindow;
//    Reparent the scripted panel to the second window.
//
scriptedPanel -e -unParent sampleScriptedPanel;
scriptedPanel -e -parent "sampleWin2|frm" sampleScriptedPanel;
//    Reparent the scripted panel back to the first window.
//
scriptedPanel -e -unParent sampleScriptedPanel;
scriptedPanel -e -parent "sampleWin|frm" sampleScriptedPanel;
//    Close both windows
//
catch (`window -e -visible false sampleWin`);
catch (`window -e -visible false sampleWin2`);
//    The scripted panel should appear in the Panel menu.  Select
//    Panels->Panel->Sample and the panel should appear in the main window.
//