一方の optionMenu を変更すると、
もう一方の optionMenu も変更される MEL スクリプトの例です。
上の optionMenu に Paint Effect のブラシのフォルダ名、
下の optionMenu にそのフォルダに属するブラシのリストが表示されます。
global proc optionMenuSample1(string $location)
{
int $num = `optionMenu -q -ni brushesOptionMenu`;
string $fname = `optionMenu -q -v foldersOptionMenu`;
string $names[] = `getFileList -fld ($location + $fname + "/") -fs "*.mel"`;
int $i = 0;
for($n in $names)
{
if($i < $num)
{
menuItem -e -label $n ("brushesMenuItem" + $i);
}
else
{
menuItem -p brushesOptionMenu -label $n ("brushesMenuItem" + $i);
}
$i++;
}
for(; $i < $num; $i++)
{
deleteUI ("brushesMenuItem" + $i);
}
}
{
window;
columnLayout;
string $location = `getenv "MAYA_LOCATION"`;
$location += "/brushes/";
optionMenu -label "Folders" -cc ("optionMenuSample1(\"" + $location + "\")") foldersOptionMenu;
string $names[] = `getFileList -fld $location -fs "*"`;
for($n in $names)
{
menuItem -label $n;
}
optionMenu -label "Brushes" brushesOptionMenu;
$names = `getFileList -fld ($location + $names[0] + "/") -fs "*.mel"`;
int $i = 0;
for($n in $names)
{
menuItem -label $n ("brushesMenuItem" + $i);
$i++;
}
showWindow;
}