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

		ICompChooserWithWireFrame.h

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

		Author:	Greg 
		Date:	5/12/99

		Revision History

		when		who			what & why
		==========	==========	======================================================

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

#ifndef __ICOMPCHOOSERWITHWIREFRAME__
#define __ICOMPCHOOSERWITHWIREFRAME__

#if CP_PRAGMA_ONCE
#pragma once
#endif

#include "ComMessages.h"
#include "MCCompObj.h"
#include "MCCountedPtr.h"

struct IShParameterComponent;
struct I3DShTreeElement;

//****** Globally Unique Ids *************************************************

MCDEFINE_GUID(IID_ISingleCompChooserWithWireFrame, 	0x69740f5d, 0xe9e9, 0x42b6, 0xa4, 0xd7, 0x9c, 0x10, 0x0, 0x6b, 0xe, 0x5c);
MCDEFINE_GUID(IID_IMultiCompChooserWithWireFrame, 0x84f051e1, 0x2806, 0x11d3, 0xab, 0x90, 0x0, 0x10, 0x4b, 0x6e, 0xac, 0xa9);

//****************************************************************************
	
/// \addtogroup ShellInterface
/// \{

/// Single component chooser with wireframe enable/disable icon.  Used, for example, in the list of modifiers.
/// The modifier list itself is a IMultipleComponentChooser, while each individual component in the list 
/// is a ISingleCompChooserWithWireFrame.
///
struct ISingleCompChooserWithWireFrame : public IMCUnknown
{
	virtual void MCCOMAPI Initialize	(const IDType& inFamilyID, boolean inCanBeNone, boolean inShowFamilyName,
											 IShParameterComponent* inComponent) = 0;
};

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

/// Multiple component chooser with wireframe enable/disable icon.	
struct IMultiCompChooserWithWireFrame : public IMCUnknown
{
	virtual void MCCOMAPI Initialize	(const IDType& inFamilyID) = 0;
};

/// \}
#endif