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

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

		Author:	Arnaud
		Date:	12/2/2004

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

#ifndef __PropertiesClient__
#define __PropertiesClient__

#if CP_PRAGMA_ONCE
#pragma once
#endif


#include "BasicPropertiesClient.h"
#include "3DPublicDefs.h"
#include "MCPtr.h"


#include "SimpleModelerDef.h"


class TModeler;



class TPropertiesClient : public TBasicPropertiesClient
{
public:
	static void Create(	IPropertiesModule*		inPropertiesModule,
						TModeler*				inModeler,
						TPropertiesClient**		outClient);

	STANDARD_RELEASE;

	virtual IDType		MCCOMAPI	GetControllingModuleID()					{ return kModelerClassID; }
	virtual ResourceID	MCCOMAPI	GetPropResID()								{ return kEmptyProperties; }
	virtual void		MCCOMAPI	GetExtraTabs(TMCClassArray<TPropertyTab>& extraTabs);

	//Those 4 methods should go in TBasicPropertiesClient
	virtual void			Hydrate		();
	virtual void			Dehydrate	();
	virtual void			Activate	();
	virtual void			Deactivate	();

protected:
	TPropertiesClient							(	IPropertiesModule*		inPropertiesModule,
													TModeler*			inModeler);
	~TPropertiesClient();
	
	virtual void			GetPreferedSplit	(int32& outPreferedSize, boolean& outForTopPart);
	virtual void			StorePreferedSplit	(int32 inPreferedSize);

protected:
	TMCPtr<TModeler>	fModeler;
};



#endif
