#ifndef __ObjTextRect_h
#define __ObjTextRect_h

#include "ObjFigure.h"	// SuperClass.

//;----- <EXPORT TO SDK> -----;

#ifdef SUPER_CLASS
#undef SUPER_CLASS
#endif
#define SUPER_CLASS FCObjFigure

//;------ </EXPORT TO SDK> -----;


class FCUndoArchive;
class FCObjTable;
class FCHiCommandTable;
class CFCProObjTextRectSizeLimit;

/*************************************************************************
 * <_xZkqqHx_iDeOiDiJiDfI_xHqqkZx_>	FCObjTextRect
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_iDgFiDeMiDfIiDgHiLoJiMgAiCmMjFjEjFgJiBeC_xHqqkZx_
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	05.02.05 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
class FCObjTextRect : public SUPER_CLASS
{
protected:
typedef SUPER_CLASS BASE_CLASS;

public:
	//----- _xZkqqHx_jBfDiCmEiCmM_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	FCObjTextRect ();
	virtual BOOL	IsKindOf (FTObjectType nType) const;

	//----- _xZkqqHx_iOmAjBmMiJlLiJmCjEfMiCmIiDeOiDiJiDfIiCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual FTObjectType	Type () const;

	//----- Subclass_xZkqqHx_iCmMiCkCiClIiCoKiCkJiCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual DBLRect	GetResizeFrame () const;

	//----- _xZkqqHx_jBkOjAkLiCpAiOjNiCmCjBfDiCmEiCmM_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual BOOL	IsEqual (const FCObjDynabase* objp) const;
// 06.06.23 Fukushiro M. 1_xZkqqHx_iNhDjFmPiNfI_xHqqkZx_ ()
//	virtual void	OutStream (FCUndoArchive& ar);
	virtual void	OutStream (FCUndoArchive& ar, BOOL bIsOutBezier);
	virtual void	InStream (FCUndoArchive& ar);

	//----- _xZkqqHx_iKePiMgAiCpAiOjNiCmCjBfDiCmEiCmM_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual void	NewObjPolygonForDraw (	DBLPointVector& vmmptPoly,
											mmetol mmElemLen,
											const DBLRect mmrtaClip[],
											int iClipSize) const;
// 05.06.28 Fukushiro M. 1_xZkqqHx_iNhDjCmHiJmB_xHqqkZx_ ()
	virtual void	NewObjBezierForDraw (FCMmPolyBezier& polyBezier) const;

	//----- _xZkqqHx_jFeLjHhGiCmJiJjOiClGiCmEiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClHiCoKiCmOjHmHiCkC_xHqqkZx_ -----
// 05.03.03 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual void	CalcResizeFrameSelf ();

	virtual	PenStyleID	GetStdPenStyle () const;
	virtual	fmmetol		GetStdPenWeight () const;
	virtual	SColorID	GetStdPenBackSColor () const;

friend class FCObjTable;
friend class FCHiCommandTable;
friend class CFCProObjTextRectSizeLimit;

protected:
	//----- _xZkqqHx_iClBiCmMiDeOiDiJiDfIiMmFjHeMiCmMiKnGjAjE_xHqqkZx_ -----
	virtual mmetol	GetMinWidth () const;
	virtual mmetol	GetMaxWidth () const;
	virtual mmetol	GetMinHeight () const;
	virtual mmetol	GetMaxHeight () const;
	virtual void	SetMinWidth (mmetol mmWidth);
	virtual void	SetMaxWidth (mmetol mmWidth);
	virtual void	SetMinHeight (mmetol mmHeight);
	virtual void	SetMaxHeight (mmetol mmHeight);

	//----- _xZkqqHx_jBkOjAkLiCpAiOjNiCmCjBfDiCmEiCmM_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual void	Copy (FCObjDynabase* pObj) const;
	virtual void	CopySelf (FCObjDynabase* pObj) const;

	//----- _xZkqqHx_jFeLjHhGiCmJiJjOiClGiCmEiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClHiCoKiCmOjHmHiCkC_xHqqkZx_ -----
	virtual void	Move (mmetol mmDX, mmetol mmDY);
	virtual void	Resize (BOOL bXPosi, BOOL bYPosi, const DBLRect& mmrtNew, const DBLRect& mmrtOld);
// 05.02.28 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual void	Rotate (double dR, mmetol mmCX, mmetol mmCY);

// 05.07.12 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual	PenStyleID	GetStdPenStyle () const;

protected:
	DBLRect		m_mmrtResize;	// _xZkqqHx_iDiKiDfEiDeDiDfJiDhEiDiMiBfLiDiAiBeC_xHqqkZx_
	mmetol		m_mmMinWidth;	// _xZkqqHx_jFjNiCmMiNmFiPkMjCgMiBeCjAkHiMmAiClFiCmIiCkCiPoKiNiHiCmN_xHqqkZx_DBL_MAX_xZkqqHx_iCpAjAnNjCoIiBeC_xHqqkZx_
	mmetol		m_mmMaxWidth;	// _xZkqqHx_jFjNiCmMiNmFjBoFjCgMiBeCjAkHiMmAiClFiCmIiCkCiPoKiNiHiCmN_xHqqkZx_-DBL_MAX_xZkqqHx_iCpAjAnNjCoIiBeC_xHqqkZx_
	mmetol		m_mmMinHeight;	// _xZkqqHx_iNiCiClDiCmMiNmFiPkMjCgMiBeCjAkHiMmAiClFiCmIiCkCiPoKiNiHiCmN_xHqqkZx_DBL_MAX_xZkqqHx_iCpAjAnNjCoIiBeC_xHqqkZx_
	mmetol		m_mmMaxHeight;	// _xZkqqHx_iNiCiClDiCmMiNmFjBoFjCgMiBeCjAkHiMmAiClFiCmIiCkCiPoKiNiHiCmN_xHqqkZx_-DBL_MAX_xZkqqHx_iCpAjAnNjCoIiBeC_xHqqkZx_
}; // class FCObjTextRect.

#endif//__ObjTextRect_h
