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

		IEditTimePart.h

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

		IEditTimePart definition
		IFPSPopupPart definition

		Author:	Joshua
		Date:	10/20/98
		
		Revision History

		when		who			what & why
		==========	==========	======================================================
		9/20/99		Alec		removed G/SetValue from the IEditTimePart
*****************************************************************************************/

#ifndef __IEDITTIMEPART__
#define __IEDITTIMEPART__

#if CP_PRAGMA_ONCE
#pragma once
#endif

#include "COMTypes.h"
#include "APITypes.h"

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

MCDEFINE_GUID(IID_IEditTimePart, 0xed96dc40, 0x686a, 0x11d2, 0x88, 0x53, 0x0, 0x60, 0x97, 0x14, 0x85, 0x21);
MCDEFINE_GUID(IID_IFPSPopupPart, 0x2523daa0, 0xc153, 0x11d2, 0x8b, 0x7d, 0x0, 0x60, 0x97, 0xb, 0xc5, 0x21);

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

enum EETDisplayMode
{
	kTimeMode  = 0,
	kFrameMode = 1
};

/// \addtogroup ExternalInterface
/// \{

/// The EditTimePart is a part that allows to display the time in the format
/// Minutes/Seconds/Frame. To add one you can create an edit text in MCSketch
/// and then specify "TEditTimePart" as the class name.
///
struct IEditTimePart : public IMCUnknown
{
	// ****************************************************************************
	//								SetFPS
	// 
	/// Sets the number of frames per seconds.
	/// 
	virtual void	MCCOMAPI SetFPS			(real32 fps, boolean redraw)=0;
	virtual real32	MCCOMAPI GetFPS			()=0;
	virtual void	MCCOMAPI SetMin			(const MicroTick& time)=0;
	virtual void	MCCOMAPI SetMax			(const MicroTick& time)=0;
	virtual void	MCCOMAPI SetDisplayMode	(int32 mode, boolean redraw)=0;
	virtual int32	MCCOMAPI GetDisplayMode	()=0;
};

/// \}

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

/// \addtogroup ExternalInterface
/// \{

/// The interface to access a popup part. You can add one in your own
/// node part by using the class name "TFPSPopupPart"
///
struct IFPSPopupPart : public IMCUnknown
{
	virtual real32	MCCOMAPI GetFPS			() = 0;
	virtual void	MCCOMAPI SetFPS			(real32 fps, boolean inNotify) = 0;
};

/// \}

#endif
