// Copyright (C) 1997-2006 Autodesk, Inc., and/or its licensors.
// All rights reserved.
//
// The coded instructions, statements, computer programs, and/or related
// material (collectively the "Data") in these files contain unpublished
// information proprietary to Autodesk, Inc. ("Autodesk") and/or its licensors,
// which is protected by U.S. and Canadian federal copyright law and by
// international treaties.
//
// The Data is provided for use exclusively by You. You have the right to use,
// modify, and incorporate this Data into other products for purposes authorized 
// by the Autodesk software license agreement, without fee.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. AUTODESK
// DOES NOT MAKE AND HEREBY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTIES
// INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF NON-INFRINGEMENT,
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ARISING FROM A COURSE 
// OF DEALING, USAGE, OR TRADE PRACTICE. IN NO EVENT WILL AUTODESK AND/OR ITS
// LICENSORS BE LIABLE FOR ANY LOST REVENUES, DATA, OR PROFITS, OR SPECIAL,
// DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES, EVEN IF AUTODESK AND/OR ITS
// LICENSORS HAS BEEN ADVISED OF THE POSSIBILITY OR PROBABILITY OF SUCH DAMAGES.

//
// Alias Script File
// MODIFY THIS AT YOUR OWN RISK
//
// Creation Date:  13 April 1997
//
//
//  Procedure Name:
//      AniConstraintsMenu
//
//  Description:
//		Create the ANIMATION->Constraints menu
//
//  Input Arguments:
//      parent to parent the menu to.
//
//  Return Value:
//      None.
//

global proc AniConstraintsMenuAddPoleVector( string $parent )
//
//	Description:
//		A proc to add the poleVectorConstraint to the AniConstraints menu.
//		This does not check for the existance of the poleVectorConstraint
//		menu item.
//
//		This proc will only get called after AniConstraintsMenu, therefore
//		this proc will exist when it is needed.
//
//		initialKinUI.mel depends on the menu item having poleVectorConstraint
//		in its name.
{
	setParent -menu $parent;

	if (`exists ikSystem` != 0) {
		menuItem -divider true;
		menuItem -label (uiRes("m_AniConstraintsMenu.kPoleVector"))  
			-annotation (uiRes("m_AniConstraintsMenu.kPoleVectorAnnot")) 
			-dmc "performPoleVectorConstraint 2" 
			-c "PoleVectorConstraint"
			-i "poleVectorConstraint.xpm"
			poleVectorConstraintItem;
		menuItem -optionBox true
			-annotation (uiRes("m_AniConstraintsMenu.kPoleVectorOptAnnot")) 
			-c "PoleVectorConstraintOptions"
			-i "poleVectorConstraint.xpm" 
			poleVectorConstraintOptionItem;
	}
}

global proc AniConstraintsMenu( string $parent )
{
	setParent -menu $parent;
	if( `menu -q -ni $parent` != 0 ) {
		//
		//	Menu is built already - just return
		//
		return;
	}

	menuItem -label (uiRes("m_AniConstraintsMenu.kPoint"))  
		-annotation (uiRes("m_AniConstraintsMenu.kPointAnnot")) 
		-dmc "performPointConstraint 2"
		-c "PointConstraint"
		-i "posConstraint.xpm"
		pointConstraintItem;
		menuItem -optionBox true
			-annotation (uiRes("m_AniConstraintsMenu.kPointOptAnnot")) 
			-i "posConstraint.xpm"
			-c "PointConstraintOptions"
			pointConstraintOptionItem;

	menuItem -label (uiRes("m_AniConstraintsMenu.kAim"))  
		-annotation (uiRes("m_AniConstraintsMenu.kAimAnnot")) 
		-dmc "performAimConstraint 2"
		-c "AimConstraint"
		-i "aimConstraint.xpm"
		aimConstraintItem;
		menuItem -optionBox true		
			-annotation (uiRes("m_AniConstraintsMenu.kAimOptAnnot")) 	
			-c "AimConstraintOptions"
			-i "aimConstraint.xpm"
			aimConstraintOptionItem;

	menuItem -label (uiRes("m_AniConstraintsMenu.kOrient"))  
		-annotation (uiRes("m_AniConstraintsMenu.kOrientAnnot")) 
		-dmc "performOrientConstraint 2"
		-c "performOrientConstraint 0"
		-i "orientConstraint.xpm"
		orientConstraintItem;
		menuItem -optionBox true
			-annotation (uiRes("m_AniConstraintsMenu.kOrientOptAnnot"))
			-c "OrientConstraintOptions"
			-i "orientConstraint.xpm"
			orientConstraintOptionItem;
		
	menuItem -label (uiRes("m_AniConstraintsMenu.kScale"))  
		-annotation (uiRes("m_AniConstraintsMenu.kScaleAnnot")) 
		-dmc "performScaleConstraint 2"
		-c "ScaleConstraint"
		-i "scaleConstraint.xpm"
		scaleConstraintItem;
		menuItem -optionBox true
			-annotation (uiRes("m_AniConstraintsMenu.kScaleOptAnnot")) 
			-c "ScaleConstraintOptions"
			-i "scaleConstraint.xpm"
			scaleConstraintOptionItem;
		
	menuItem -label (uiRes("m_AniConstraintsMenu.kParent"))  
		-annotation (uiRes("m_AniConstraintsMenu.kParentAnnot")) 
		-dmc "performParentConstraint 2"
		-c "ParentConstraint"
		-i "parentConstraint.xpm" 
		parentConstraintItem;
		menuItem -optionBox true
			-annotation (uiRes("m_AniConstraintsMenu.kParentOptAnnot"))
			-c "ParentConstraintOptions"
			-i "parentConstraint.xpm"
			parentConstraintOptionItem;
		
	menuItem -divider true;

	menuItem -label (uiRes("m_AniConstraintsMenu.kGeometry"))  
		-annotation (uiRes("m_AniConstraintsMenu.kGeometryAnnot")) 
		-dmc "performGeometryConstraint 2"
		-c "GeometryConstraint"
		-i "geometryConstraint.xpm"
		geometryConstraintItem;
		menuItem -optionBox true
			-annotation (uiRes("m_AniConstraintsMenu.kGeometryOptAnnot")) 
			-i "geometryConstraint.xpm"
			-c "GeometryConstraintOptions"
			geometryConstraintOptionItem;

	menuItem -label (uiRes("m_AniConstraintsMenu.kNormal"))  
		-annotation (uiRes("m_AniConstraintsMenu.kNormalAnnot")) 
		-dmc "performNormalConstraint 2"
		-c "performNormalConstraint 0"
		-i "normalConstraint.xpm"
		normalConstraintItem;
		menuItem -optionBox true
			-annotation (uiRes("m_AniConstraintsMenu.kNormalOptAnnot"))
			-i "normalConstraint.xpm"
			-c "NormalConstraintOptions"
			normalConstraintOptionItem;

	menuItem -label (uiRes("m_AniConstraintsMenu.kTangent"))  
		-annotation (uiRes("m_AniConstraintsMenu.kTangentAnnot")) 
		-dmc "performTangentConstraint 2"
		-c "TangetConstraint"
		-i "tangentConstraint.xpm"
		tangentConstraintItem;
		menuItem -optionBox true
			-annotation (uiRes("m_AniConstraintsMenu.kTangentOptAnnot")) 
			-i "tangentConstraint.xpm"
			-c "TangetConstraintOptions"
			tangentConstraintOptionItem;

	AniConstraintsMenuAddPoleVector($parent);

	menuItem -divider true;
	
	menuItem -label (uiRes("m_AniConstraintsMenu.kRemoveTarget")) 
		-annotation (uiRes("m_AniConstraintsMenu.kRemoveTargetAnnot")) 
		-dmc "performRemoveConstraintTarget 2"
		-c "RemoveConstraintTarget"
		removeConstraintTargetItem;
		menuItem -optionBox true
			-annotation (uiRes("m_AniConstraintsMenu.kRemoveTargetOptAnnot")) 
			-c "RemoveConstraintTargetOptions"
			removeConstraintTargetOptionItem;

	menuItem -label (uiRes("m_AniConstraintsMenu.kSetRestPos")) 
		-annotation (uiRes("m_AniConstraintsMenu.kSetRestPosAnnot")) 
		-c "setConstraintRestPosition"
		setRestPositionItem;
		
	menuItem -label (uiRes("m_AniConstraintsMenu.kSetRestOptPos")) 
		-annotation (uiRes("m_AniConstraintsMenu.kSetRestPosOptAnnot")) 
		-dmc "performModifyConstraintAxes 2"
		-c "ModifyConstraintAxisOptions"
		modifyConstraintAxisItem;
}
