Go to: Synopsis. Return value. MEL examples.
addCustomPrefsTab (string $tabCreateFn, string $frameCreateFn, string $updateFn, string $holdStateFn, string $setOptVarToDefaultFn, string $title, string $name)
None
| Variable Name | Variable Type | Description |
|---|---|---|
| $tabCreateFn | string | The callback function to create the tab. |
| $frameCreateFn | string | The callback function to create the frame layout of the tab. |
| $updateFn | string | The callback function to update UI elements when option vars changed. |
| $holdStateFn | string | The callback function to save or restore the preference setting of the tab. |
| $setOptVarToDefaultFn | string | The callback function to set option vars to default values. |
| $title | string | The title of the tab. |
| $name | string | The name of the tab. |
global proc prefsUpdateExample()
{
global string $gPreferenceWindow;
setParent $gPreferenceWindow;
string $parent = "prefExample";
if (`columnLayout -q -numberOfChildren $parent` == 0) {
return;
}
setParent $parent;
textField -e -text `optionVar -q exampleWords` words;
}
global proc exampleFieldChanged()
{
global string $gPreferenceWindow;
if (`window -exists $gPreferenceWindow`) {
setParent prefExample;
if (`textField -exists words`) {
optionVar -sv exampleWords `textField -q -text words`;
}
}
}
global proc prefsHoldCurrentStateExample(string $mode)
{
exampleFieldChanged();
if ($mode == "save") {
optionVar -sv "exampleWordsHold" `optionVar -q exampleWords`;
} else if ($mode == "restore") {
optionVar -sv "exampleWords" `optionVar -q exampleWordsHold`;
} else {// "remove"
// Remove the temporary option vars so they don't get saved out
optionVar -remove "exampleWordsHold";
}
global string $gPreferenceWindow;
if (`window -exists $gPreferenceWindow`) {
setParent prefExample;
if (`textField -exists words`) {
textField -e -text `optionVar -q exampleWords` words;
}
}
}
global proc prefsCreateExample()
{
global string $gPreferenceWindow;
setParent $gPreferenceWindow;
string $parent = "prefExample";
// Check to see if this has been created already.
//
if (`columnLayout -q -numberOfChildren $parent` > 0) {
return;
}
// Create the UI
//
setParent $parent;
setUITemplate -pushTemplate prefsTemplate;
// This is used to force the width to fill the window
separator -style "none" -h 1;
string $textContent = "Hello, world!";
if (`optionVar -exists exampleWords`) {
$textContent = `optionVar -q exampleWords`;
}
textField
-text $textContent
-changeCommand exampleFieldChanged
words;
setUITemplate -popTemplate;
exampleFieldChanged();
prefsUpdateExample();
}
global proc prefsFrameLayoutCreateExample()
{
frameLayout -labelVisible false -borderVisible false -marginWidth 10 -marginHeight 10;
columnLayout -adj true prefExample;
}
global proc prefsSetOptVarToDefault()
{
optionVar -sv exampleWords "Hello, world!";
}
// register the new tab
addCustomPrefsTab("prefsCreateExample",
"prefsFrameLayoutCreateExample",
"prefsUpdateExample",
"prefsHoldCurrentStateExample",
"prefsSetOptVarToDefault",
"Example Configuration",
" Example");
// unregister the tab
deleteCustomPrefsTab("prefsCreateExample");