#ifndef __ToolBaseRectCreate_h
#define __ToolBaseRectCreate_h

#include "ResizeWork.h"		// For FCResizeWork.
#include "LinkManager.h"	// For FCLinkRecVector;
#include "ToolBaseCreate.h"	// Super class.

#ifdef SUPER_CLASS
#undef SUPER_CLASS
#endif
#define SUPER_CLASS FCToolBaseCreate


/*************************************************************************
 * <_xZkqqHx_iDeOiDiJiDfI_xHqqkZx_>	FCToolBaseRectCreate
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_jFjEjFgJiCmMjBoFiCkLiClDiCpAiLoJiMgAiCmFiOhHjCoIiClFiCmEiNoMjAkMiClHiCoJiNoMjAkMiDgDiBfLiDiLiCmMiKoOjGhLiDeOiDiJiDfIiBeC_xHqqkZx_
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	00.01.25 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
class FCToolBaseRectCreate : public SUPER_CLASS
{
protected:
typedef SUPER_CLASS BASE_CLASS;

public:
	//----- _xZkqqHx_iDfEiDhFiDeOiDiJiDfIiCmFjEeDiInD_xHqqkZx_ -----
// 06.12.09 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual void	OnDraw (CDC* pDC);
	virtual void	Select (CDC* pDC);

protected:
	//----- FCToolBaseRectCreate_xZkqqHx_iMmFjHeMiCmMiKnGjAjE_xHqqkZx_ -----
	virtual void	GetRectHintText (WString& wstrHint, const DBLRect& mmrtFrame) const;

	//----- FCToolBaseRectCreate_xZkqqHx_iCmMiDfEiDhFiDeOiDiJiDfIiCmFjFeLjHhGiCmJiJjOiClGiCmE_xHqqkZx_ -----
	virtual BOOL	InitNewObject (FCObjDynabase* pObj, const DBLPoint& mmpt) const;
//----- 01.08.14 Fukushiro M. _xZkqqHx_jCmHiJmBiOgO_xHqqkZx_ ()-----
	virtual void	GetRegisteredObject (ObjDynabaseVector& vNewObj,
										FCLinkRecVector& vLinkRec);
//----- 01.08.14 Fukushiro M. _xZkqqHx_jCmHiJmBiPeJ_xHqqkZx_ ()-----

	//----- FCToolBaseFDA_xZkqqHx_iCmMiDfEiDhFiDeOiDiJiDfIiCmFjFeLjHhGiCmJiJjOiClGiCmE_xHqqkZx_ -----
// 06.12.09 Fukushiro M. 1_xZkqqHx_iNhDjCmHiJmB_xHqqkZx_ ()
	virtual void	OnDrawState (CDC* pDC, int iState);
	virtual int		TransFDA (int iState, int iEvent);
	virtual void	StateFDA (int iState, CDC* pDC);

	//----- _xZkqqHx_jBeKiInKiPpDjBnEiPiIjHjN_xHqqkZx_ -----
	virtual void	StateEnterCreate (CDC* pDC);	// _xZkqqHx_iNoMjAkMjDpMiMpLiBeC_xHqqkZx_
	virtual void	StateStartCreate (CDC* pDC);	// _xZkqqHx_iNoMjAkMiKeKiOgOiBeC_xHqqkZx_
	virtual void	StateCreating (CDC* pDC);		// _xZkqqHx_iNoMjAkMjCiGiBeC_xHqqkZx_
	virtual void	StateStopCreate (CDC* pDC);		// _xZkqqHx_iNoMjAkMiPeJjHlJiBeC_xHqqkZx_
	virtual void	StateExitCreate (CDC* pDC);		// _xZkqqHx_iNoMjAkMiPgPiMpLiBeC_xHqqkZx_

protected:
// _xZkqqHx_iClBiCmMiDeOiDiJiDfIiMmFjHeMiCmMjCoIiLgAiBeC_xHqqkZx_
enum
{
	STATE_BEGIN = BASE_CLASS::STATE_END,	// _xZkqqHx_iPpDjBnEiKeKiOgOiBeC_xHqqkZx_
	STATE_ENTER_CREATE,		// _xZkqqHx_iNoMjAkMjDpMiMpLiBeC_xHqqkZx_
	STATE_START_CREATE,		// _xZkqqHx_iNoMjAkMiKeKiOgOiBeC_xHqqkZx_
	STATE_CREATING,			// _xZkqqHx_iNoMjAkMjCiGiBeC_xHqqkZx_
	STATE_STOP_CREATE,		// _xZkqqHx_iNoMjAkMiPeJjHlJiBeC_xHqqkZx_
	STATE_EXIT_CREATE,		// _xZkqqHx_iNoMjAkMiPgPiMpLiBeC_xHqqkZx_
	STATE_END,				// _xZkqqHx_iPpDjBnEiPeJjHlJiBeC_xHqqkZx_
};

protected:
	FCObjDynabase*		m_objpNew;
	FCResizeWork	m_resizeWork;	// _xZkqqHx_iDiKiDfEiDeDiDfJjHhAiDeOiDiJiDfIiBeC_xHqqkZx_
	DBLPoint		m_mmptDownCnv;	// _xZkqqHx_iDhLiDfOiDjDiCpAiJjPiClFiClNiOjOiCmMiImKjChFiBgJjFmPiKlHiMoDiBgKiCpAiLeMjIfOiBeC_xHqqkZx_
}; // class FCToolBaseRectCreate.

#endif//__ToolBaseRectCreate_h
