/****************************************************************************************************

		IMFCollapsibleListPart.h
		Copyright: (c) 2001 Eovia Corp. All rights reserved.

		Author:	Julien
		Date:	9/28/2003

****************************************************************************************************/

#ifndef __IMFCollapsibleListPart__
#define __IMFCollapsibleListPart__

#if CP_PRAGMA_ONCE
#pragma once
#endif

#include "MCCompObj.h"

struct IMFCollapsiblePart;

MCDEFINE_GUID(IID_IMFCollapsibleListPart, 0x5214e514, 0x4568, 0x4168, 0xbf, 0xf7, 0xde, 0x16, 0x88, 0xa5, 0x72, 0x7e);

/// \addtogroup MCF
/// \{

/// This is the interface to access a list of collapsible part. The corresponding type in MCSketch is:
/// TMFCollapsibleListPart
///
struct IMFCollapsibleListPart : public IMCUnknown
{
	virtual	void 	MCCOMAPI AddPart				(IMFCollapsiblePart* 		inPart,
												 int32 						inIndex )=0;

	virtual	void 	MCCOMAPI RemovePart				(int32 						inIndex)=0;
	virtual	void 	MCCOMAPI RemovePart				(IMFCollapsiblePart* 		inPart)=0;
		
	virtual	int32 	MCCOMAPI PartToIndex			(IMFCollapsiblePart* 		inPart)=0;
	virtual	IMFCollapsiblePart* MCCOMAPI IndexToPartNoAddRef(int32				inIndex)=0;

	virtual	uint32 	MCCOMAPI GetPartCount			()=0;

	virtual void	MCCOMAPI ChangePart				(IMFCollapsiblePart*		inPart,
												 int32						inIndex,
												 boolean					reveal )=0;
};

/// \}


#endif
