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

		IMFExListPart.h

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

		Author:	Emil
		Date:	8/10/98

		COM interface to external ListPart objects.

		Revision History

		when		who			what & why
		==========	==========	======================================================
		11/23/98	pbk			Separating COMSuppport from MCFrame

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

#ifndef __IMFEXLISTPART__
#define __IMFEXLISTPART__

#if CP_PRAGMA_ONCE
#pragma once
#endif

#include "MCCompObj.h"
#include "MCFInterfaceIDs.h"

struct IMCGraphicContext;
class  TMCRect;
class  TMCPoint;

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

MCDEFINE_GUID2(IID_IMFExListPart, R_IID_IMFExListPart);

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




/// \addtogroup MCF
/// \{

/// This is the interface for a list part.
///
struct IMFExListPart : public IMCUnknown
{
	virtual void	MCCOMAPI SelfDrawCell		(IMCGraphicContext* graphicContext, const TMCRect& cellRect,
												 int32 inCell, boolean isSelected)=0;

	virtual void	MCCOMAPI SelfHiliteCell		(IMCGraphicContext* context, const TMCRect& cellRect,
												 int32 inCell, boolean isSelected)=0;

	virtual boolean MCCOMAPI SelfClick			(const TMCPoint& mouse, int32 hitCell)=0;
	virtual void	MCCOMAPI SelfDoubleClick	(const TMCPoint& mouse, int32 hitCell)=0;
	virtual void	MCCOMAPI SelfDragDrop		(const TMCRect& cellRect, int32 hitCell, const TMCPoint& m2)=0;
	virtual void	MCCOMAPI SelfDragCell		(int32 fromCell, int32 toCell)=0;

	virtual int32	MCCOMAPI GetMinimumWidth	() = 0;
};
/// \}

#endif