// =========================================================================== // Copyright 2018 Autodesk, Inc. All rights reserved. // // Use of this software is subject to the terms of the Autodesk license // agreement provided at the time of installation or download, or which // otherwise accompanies this software in either electronic or hard copy form. // =========================================================================== // // // Creation Date: 9 June 1997 // // // Create an outliner panel's menu bar // global proc buildOutlinerContextHelpItems(string $nameRoot, string $menuParent) // // Description: // Build context sensitive menu items // // Input Arguments: // $nameRoot - name to use as the root of all item names // $menuParent - the name of the parent of this menu // // Return Value: // None // { menuItem -label (uiRes("m_createOutlinerPanelMenu.kHelpOnOutliner")) -enableCommandRepeat false -command "showHelp Outliner"; } global proc string getCurrentOutlinerPanel () // // Description: // Called by run time commands to retrieve the current outliner panel name // The panel can be the outliner panel, or the dynamic relationship editor panel. // { string $currentPanel = `getPanel -withFocus`; if ("" != $currentPanel) { string $panelType = `getPanel -typeOf $currentPanel`; if ($panelType == "outlinerPanel") { return ($currentPanel); } else if ( $panelType == "scriptedPanel") { string $scriptedPanelType = `scriptedPanel -q -type $currentPanel`; if ( $scriptedPanelType == "dynRelEdPanel" ) { return ($currentPanel + "dynRelOutlinerEditor"); } } } return ""; } global proc createOutlinerDisplayMenu( string $ed, int $useDefaultRuntimeCommands, string $parent, int $subMenu ) { // Show Menu // string $previousParent; int $inPopupMenu = 0; if (`popupMenu -exists $parent` && $subMenu ) { $previousParent = `setParent -q -menu`; setParent -menu $parent; $inPopupMenu = 1; } string $showMenuName; string $displayLabel = (uiRes("m_createOutlinerPanelMenu.kDisplay")); if($subMenu) { if ($inPopupMenu) { $showMenuName = `menuItem -subMenu true -label $displayLabel -familyImage "menuIconShow.png" Show`; } } else { $showMenuName = `menu -tearOff true -label $displayLabel -familyImage "menuIconShow.png" Show`; } menu -e -pmc ("updateOutlinerPanelMenu "+$showMenuName+" "+$ed) $showMenuName; // don't create "showDagOnly" & "Shapes" menu items for Display subMenu as they're already added in parent menu.. // if(!$subMenu) { menuItem -checkBox false -label (uiRes("m_createOutlinerPanelMenu.kDAGObjectsOnly")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleDAGOnly;" + "} else {" + " outlinerEditor -e -showDagOnly #1 " + $ed + ";" + "}") dagOnlyItem; menuItem -checkBox false -label (uiRes("m_createOutlinerPanelMenu.kShapes")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleShapes;" + "} else {" + " outlinerEditor -e -showShapes #1 " + $ed + ";" + "}") shapesItem; } menuItem -checkBox false -label (uiRes("m_createOutlinerPanelMenu.kAssignedMaterials")) -version 2017 -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleAssignedMaterials;" + "} else {" + " outlinerEditor -e -showAssignedMaterials #1 " + $ed + ";" + "}") assignedMaterialsItem; menuItem -checkBox false -label (uiRes("m_createOutlinerPanelMenu.kTimeEditor")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleTimeEditor;" + "} else {" + " outlinerEditor -e -showTimeEditor #1 " + $ed + ";" + "}") timeEditorItem; menuItem -checkBox false -label (uiRes("m_createOutlinerPanelMenu.kReferenceNodes")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleReferenceNodes;" + "} else {" + " outlinerEditor -e -showReferenceNodes #1 " + $ed + ";" + "}") referenceNodesItem; menuItem -checkBox false -label (uiRes("m_createOutlinerPanelMenu.kReferenceMembers")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleReferenceMembers;" + "} else {" + " outlinerEditor -e -showReferenceMembers #1 " + $ed + ";" + "}") referenceMembersItem; menuItem -checkBox false -label (uiRes("m_createOutlinerPanelMenu.kAttributesChannels")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleAttributes;" + "} else {" + " outlinerEditor -e -showAttributes #1 " + $ed + ";" + "}") attributesItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kSetMembers")) -checkBox false -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleSetMembers;" + "} else {" + " outlinerEditor -e -showSetMembers #1 " + $ed + ";" + "}") setMembersItem; menuItem -checkBox false -label (uiRes("m_createOutlinerPanelMenu.kConnected")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleConnected;" + "} else {" + " outlinerEditor -e -showConnected #1 " + $ed + ";" + "}") connectionsItem; menuItem -checkBox true -label (uiRes("m_createOutlinerPanelMenu.kShowNamespace")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleNamespace;" + "} else {" + " outlinerEditor -e -showNamespace #1 " + $ed + ";" + "}") showNamespaceItem; menuItem -checkBox false -label (uiRes("m_createOutlinerPanelMenu.kIgnoreHiddenAttribute")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleIgnoreHidden;" + "} else {" + " outlinerEditor -e -ignoreHiddenAttribute #1 " + $ed + ";" + "}") ignoreHiddenAttributeItem; menuItem -checkBox false -label (uiRes("m_createOutlinerPanelMenu.kIgnoreUseOutlinerColor")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleIgnoreUseColor;" + "} else {" + " outlinerEditor -e -ignoreOutlinerColor #1 " + $ed + ";" + "}") ignoreOutlinerColorItem; menuItem -checkBox true -label (uiRes("m_createOutlinerPanelMenu.kShowMuteInformation")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleShowMuteInformation;" + "} else {" + " outlinerEditor -e -showMuteInfo #1 " + $ed + ";" + "}") showMuteItem; menuItem -divider true; menuItem -checkBox true -label (uiRes("m_createOutlinerPanelMenu.kOrganizeByLayer")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleOrganizeByLayer;" + "} else {" + " outlinerEditor -e -organizeByLayer #1 " + $ed + ";" + "}") organizeByLayerItem; menuItem -checkBox true -label (uiRes("m_createOutlinerPanelMenu.kOrganizeByClip")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleOrganizeByClip;" + "} else {" + " outlinerEditor -e -organizeByClip #1 " + $ed + ";" + "}") organizeByClipItem; menuItem -checkBox true -label (uiRes("m_createOutlinerPanelMenu.kAutoExpandLayers")) -c ("if(" + $useDefaultRuntimeCommands + ") {" + " OutlinerToggleAutoExpandLayers;" + "} else {" + " outlinerEditor -e -autoExpandLayers #1 " + $ed + ";" + "}") autoExpandLayersItem; menuItem -divider true; int $showContents = `outlinerEditor -q -showContainerContents $ed`; int $showContainedOnly = `outlinerEditor -q -showContainedOnly $ed`; menuItem -label (uiRes("m_createOutlinerPanelMenu.kContainerContents")) -subMenu true; radioMenuItemCollection; menuItem -label (uiRes("m_createOutlinerPanelMenu.kUnderContainer")) -radioButton ($showContents && $showContainedOnly) -command("outlinerEditor -e -showContainerContents 1 "+$ed + "; outlinerEditor -e -showContainedOnly 1 " + $ed +";") containerContentsItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kUnderParent")) -radioButton (!$showContents && !$showContainedOnly) -command("outlinerEditor -e -showContainerContents 0 "+$ed + "; outlinerEditor -e -showContainedOnly 0 " + $ed +";") containedOnlyItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kBoth")) -radioButton ($showContents && !$showContainedOnly) -command("outlinerEditor -e -showContainerContents 1 "+$ed + "; outlinerEditor -e -showContainedOnly 0 " + $ed +";") bothItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kNone")) -radioButton (!$showContents && $showContainedOnly) -command("outlinerEditor -e -showContainerContents 0 "+$ed + "; outlinerEditor -e -showContainedOnly 1 " + $ed +";") noneItem; setParent -m ..; int $outlinerLongName = 1; if (!`outlinerEditor -query -niceNames $ed`) { $outlinerLongName = (`outlinerEditor -query -longNames $ed` ? 2 : 0); } menuItem -label (uiRes("m_createOutlinerPanelMenu.kChannelNames")) -subMenu true; radioMenuItemCollection; menuItem -label (uiRes("m_createOutlinerPanelMenu.kNice")) -radioButton ( 1 == $outlinerLongName ) -command ("setOutlinerLongName 1 " + $ed) niceNameItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kLong")) -radioButton ( 2 == $outlinerLongName ) -command ("setOutlinerLongName 2 " + $ed) longNameItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kShort")) -radioButton ( 0 == $outlinerLongName ) -command ("setOutlinerLongName 0 " + $ed) shortNameItem; setParent -m ..; string $sortOrder = `outlinerEditor -query -sortOrder $ed`; menuItem -label (uiRes("m_createOutlinerPanelMenu.kSortOrder")) -subMenu true; radioMenuItemCollection; menuItem -label (uiRes("m_createOutlinerPanelMenu.kSceneHierarchy")) -radioButton ($sortOrder == "none") -command ("outlinerEditor -edit -sortOrder none " + $ed) noneSortOrderItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kAlphabeticalWithinType")) -radioButton ($sortOrder == "dagName") -command ("outlinerEditor -edit -sortOrder dagName " + $ed) dagNameSortOrderItem; setParent -m ..; // TODO: Should be conditional on attrs being displayed menuItem -divider true; string $attrAlphaOrder = `outlinerEditor -query -attrAlphaOrder $ed`; menuItem -label (uiRes("m_createOutlinerPanelMenu.kAttrAlphaOrder")) -subMenu true; radioMenuItemCollection; menuItem -label (uiRes("m_createOutlinerPanelMenu.kAttrAlphaOrderDefault")) -radioButton ($sortOrder == "default") -command ("outlinerEditor -edit -attrAlphaOrder \"default\" " + $ed ) defaultAttrAlphaSortOrderItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kAttrAlphabeticalAscend")) -radioButton ($sortOrder == "ascend") -command ("outlinerEditor -edit -attrAlphaOrder ascend " + $ed ) ascendAttrAlphaSortOrderItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kAttrAlphabeticalDescend")) -radioButton ($sortOrder == "descend") -command ("outlinerEditor -edit -attrAlphaOrder descend " + $ed ) descendAttrAlphaSortOrderItem; setParent -m ..; menuItem -divider true; string $animLayerFilterOptions = `outlinerEditor -query -animLayerFilterOptions $ed`; int $showAnimLayerWeight = `outlinerEditor -query -showAnimLayerWeight $ed`; menuItem -label (uiRes("m_createOutlinerPanelMenu.kAnimLayerFilterOptions"))-subMenu true; radioMenuItemCollection; menuItem -label (uiRes("m_createOutlinerPanelMenu.kAnimLayerFilterFromLayerEditor")) -radioButton ($animLayerFilterOptions == "animLayerEditor") -command ("outlinerEditor -edit -animLayerFilterOptions \"animLayerEditor\" " + $ed) animLayerFilterAnimLayerEditorItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kAnimLayerFilterAllAffecting")) -radioButton ($animLayerFilterOptions == "allAffecting") -command ("outlinerEditor -edit -animLayerFilterOptions allAffecting " + $ed) animLayerFilterAllAffectingItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kAnimLayerFilterActive")) -radioButton ($animLayerFilterOptions == "active") -command ("outlinerEditor -edit -animLayerFilterOptions active " + $ed) animLayerFilterAllActiveItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kAnimLayerFilterSelected")) -radioButton ($animLayerFilterOptions == "selected") -command ("outlinerEditor -edit -animLayerFilterOptions selected " + $ed) animLayerFilterSelectedItem; menuItem -label (uiRes("m_createOutlinerPanelMenu.kAnimLayerFilterActiveAndSelected")) -radioButton ($animLayerFilterOptions == "activeAndSelected") -command ("outlinerEditor -edit -animLayerFilterOptions activeAndSelected " + $ed) animLayerFilterActiveAndSelectedItem; menuItem -divider true; menuItem -label (uiRes("m_createOutlinerPanelMenu.kShowAnimLayerWeight")) -checkBox ($showAnimLayerWeight == 1) -command ("outlinerEditor -edit -showAnimLayerWeight #1 " + $ed) showAnimLayerWeightItem; setParent -m ..; if(mayaHasRenderSetup()) { // create this menu item only for outliner panel as the render setup filter is only present in the outliner.. if(`gmatch $ed "outlinerPanel*"`) { menuItem -checkBox false -label (uiRes("m_createOutlinerPanelMenu.kRenderSetupFilter")) -version 2017 -command ("outlinerEditor -edit -renderFilterVisible #1 " + $ed) renderSetupFilter; } } if (`popupMenu -exists $parent` && $subMenu) { setParent -menu $previousParent; } } global proc createOutlinerPanelMenu( string $panel ) { // if this menu has already been built, return // string $panelControl = `panel -q -control $panel`; if ( `menuBarLayout -exists $panelControl` ){ setParent $panelControl; string $ma[] = `menuBarLayout -q -menuArray $panelControl`; for ( $name in $ma ){ if ( $name == "Show" ){ return; } } } source "OutlinerEdMenu.mel" ; // By the time we get here, we know the menu bar // of the outlinerPanel is the current menu bar // // Get the name of the outliner editor in this panel // string $ed = `outlinerPanel -q -outlinerEditor $panel`; // Create the "Display" menu using default runtime commands createOutlinerDisplayMenu( $ed, true, `setParent -query`, 0); // Create the filter UI menu. // filterUICreateMenu($ed, `setParent -query`); // Add support for the Context Sensitive Help Menu. // addContextHelpProc $panel "buildOutlinerContextHelpItems"; buildPanelPopupMenu( $panel ); } global proc updateOutlinerPanelMenu( string $menu, string $ed ) // // Update the menu before it is posted. // { setParent -m $menu; string $currentMenu = `setParent -q -m`; string $dagOnlyItem ; string $shapesItem ; if(!(`menuItem -exists $menu` && `menuItem -q -subMenu $menu`)) { $dagOnlyItem = $currentMenu+"|dagOnlyItem"; $shapesItem = $currentMenu+"|shapesItem"; } string $assignedMaterialsItem = $currentMenu+"|assignedMaterialsItem"; string $referenceNodesItem = $currentMenu+"|referenceNodesItem"; string $referenceMembersItem = $currentMenu+"|referenceMembersItem"; string $attributesItem = $currentMenu+"|attributesItem"; string $connectionsItem = $currentMenu+"|connectionsItem"; string $showNamespaceItem = $currentMenu+"|showNamespaceItem"; string $setMembersItem = $currentMenu + "|setMembersItem"; string $ignoreHiddenAttributeItem = $currentMenu+"|ignoreHiddenAttributeItem"; string $ignoreOutlinerColorItem = $currentMenu+"|ignoreOutlinerColorItem"; string $showMuteItem = $currentMenu+"|showMuteItem"; string $organizeByLayerItem = $currentMenu+"|organizeByLayerItem"; string $organizeByClipItem = $currentMenu+"|organizeByClipItem"; string $autoExpandLayersItem = $currentMenu+"|autoExpandLayersItem"; string $timeEditorItem = $currentMenu+"|timeEditorItem"; string $renderSetupFilter ; if(mayaHasRenderSetup() && `gmatch $ed "outlinerPanel*"`) { $renderSetupFilter = $currentMenu+"|renderSetupFilter"; } if ( `outlinerEditor -exists $ed` ){ if($dagOnlyItem != "") menuItem -e -checkBox `outlinerEditor -q -showDagOnly $ed` $dagOnlyItem; if($shapesItem != "") menuItem -e -checkBox `outlinerEditor -q -showShapes $ed` $shapesItem; menuItem -e -checkBox `outlinerEditor -q -showAssignedMaterials $ed` $assignedMaterialsItem; menuItem -e -checkBox `outlinerEditor -q -showTimeEditor $ed` $timeEditorItem; menuItem -e -checkBox `outlinerEditor -q -showReferenceNodes $ed` $referenceNodesItem; menuItem -e -checkBox `outlinerEditor -q -showReferenceMembers $ed` $referenceMembersItem; menuItem -e -checkBox `outlinerEditor -q -showAttributes $ed` $attributesItem; menuItem -e -checkBox `outlinerEditor -q -showConnected $ed` $connectionsItem; menuItem -e -checkBox `outlinerEditor -q -showNamespace $ed` $showNamespaceItem; menuItem -edit -checkBox `outlinerEditor -query -showSetMembers $ed` $setMembersItem; menuItem -e -checkBox `outlinerEditor -q -ignoreHiddenAttribute $ed` $ignoreHiddenAttributeItem; menuItem -e -checkBox `outlinerEditor -q -ignoreOutlinerColor $ed` $ignoreOutlinerColorItem; menuItem -e -checkBox `outlinerEditor -q -showMuteInfo $ed` $showMuteItem; menuItem -e -checkBox `outlinerEditor -q -organizeByLayer $ed` $organizeByLayerItem; menuItem -e -checkBox `outlinerEditor -q -organizeByClip $ed` $organizeByClipItem; menuItem -e -checkBox `outlinerEditor -q -autoExpandLayers $ed` $autoExpandLayersItem; if(mayaHasRenderSetup() && `gmatch $ed "outlinerPanel*"`) { menuItem -e -checkBox `outlinerEditor -q -renderFilterVisible $ed` $renderSetupFilter; } int $showContents = `outlinerEditor -q -showContainerContents $ed`; int $showContainedOnly = `outlinerEditor -q -showContainedOnly $ed`; menuItem -edit -radioButton ($showContents && $showContainedOnly) containerContentsItem; menuItem -edit -radioButton (!$showContents && !$showContainedOnly) containedOnlyItem; menuItem -edit -radioButton ($showContents && !$showContainedOnly) bothItem; menuItem -edit -radioButton (!$showContents && $showContainedOnly) noneItem; int $outlinerLongName = 1; if (!`outlinerEditor -query -niceNames $ed`) { $outlinerLongName = (`outlinerEditor -query -longNames $ed` ? 2 : 0); } menuItem -edit -radioButton ( 1 == $outlinerLongName ) niceNameItem; menuItem -edit -radioButton ( 2 == $outlinerLongName ) longNameItem; menuItem -edit -radioButton ( 0 == $outlinerLongName ) shortNameItem; string $sortOrder = `outlinerEditor -query -sortOrder $ed`; menuItem -edit -radioButton ($sortOrder == "none") noneSortOrderItem; menuItem -edit -radioButton ($sortOrder == "dagName") dagNameSortOrderItem; string $attrAlphaOrder = `outlinerEditor -query -attrAlphaOrder $ed`; menuItem -edit -radioButton ($attrAlphaOrder == "default") defaultAttrAlphaSortOrderItem; menuItem -edit -radioButton ($attrAlphaOrder == "ascend") ascendAttrAlphaSortOrderItem; menuItem -edit -radioButton ($attrAlphaOrder == "descend") descendAttrAlphaSortOrderItem; } }