#ifndef __ToolBasePutCreate_h
#define __ToolBasePutCreate_h

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

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


class FCObjDynabase;

/*************************************************************************
 * <_xZkqqHx_iDeOiDiJiDfI_xHqqkZx_>	FCToolBasePutCreate
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_jFjEjFgJiCmMjBoFiCkLiClDiCpAiOhHjCoIiClJiClIiBeBjDfPiCmGiClFiCmEiNoMjAkMiClHiCoJiDgDiBfLiDiLiBeC_xHqqkZx_
 *			_xZkqqHx_iKpJjBlGiCmMjFjEjFgJiCmJiDiKiDjDiDeOiClDiClJiCoJiBeC_xHqqkZx_
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.04.20 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
class FCToolBasePutCreate : 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);
// 05.07.25 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual void	OnDraw (CDC* pDC, const DBLRect* pmmrtRgn = NULL, long lRgnSize = 0);
// 05.04.24 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual void	Select (CDC* pDC);

protected:
	//----- FCToolBasePutCreate_xZkqqHx_iCmMiDfEiDhFiDeOiDiJiDfIiCmFjFeLjHhGiCmJiJjOiClGiCmE_xHqqkZx_ -----
//----- 01.08.13 Fukushiro M. _xZkqqHx_jCmHiJmBiOgO_xHqqkZx_ ()-----
	virtual void	CreateRegisteredObject (ObjDynabaseVector& vNewObj,
											DBLRect& mmrtFrame,
											FCLinkRecVector& vLinkRec) const;
//----- 01.08.13 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_jBeKiInKiPpDjBnEiPiIjHjNiBgJiDeJiBfLiDgPiBfLiDiJiDeDiDgIiBgK_xHqqkZx_ -----
	virtual void	StateIdle (CDC* pDC);
	//----- _xZkqqHx_jBeKiInKiPpDjBnEiPiIjHjN_xHqqkZx_ -----
	virtual void	StateStartPutText (CDC* pDC);	// _xZkqqHx_iDgFiDeMiDfIiDgHjAnNjCoIiKeKiOgOiBeC_xHqqkZx_
	virtual void	StatePuttingText (CDC* pDC);	// _xZkqqHx_iDgFiDeMiDfIiDgHjAnNjCoIjCiGiBeC_xHqqkZx_
	virtual void	StateStopPutText (CDC* pDC);	// _xZkqqHx_iDgFiDeMiDfIiDgHjAnNjCoIiPeJjHlJiBeC_xHqqkZx_
	virtual void	StateDoPutText (CDC* pDC);		// _xZkqqHx_iDgFiDeMiDfIiDgHjAnNjCoIiBeC_xHqqkZx_
	virtual void	StateLinkCommandPut (CDC* pDC);	// _xZkqqHx_iDiKiDjDiDeOiDfCiDhNiDjDiDgI_xHqqkZx___xZkqqHx_jEhKjChFiBeC_xHqqkZx_

protected:
// _xZkqqHx_iClBiCmMiDeOiDiJiDfIiMmFjHeMiCmMjCoIiLgAiBeC_xHqqkZx_
enum
{
	STATE_BEGIN = BASE_CLASS::STATE_END,	// _xZkqqHx_iPpDjBnEiKeKiOgOiBeC_xHqqkZx_
	STATE_START_PUT_TEXT,	// _xZkqqHx_iDgFiDeMiDfIiDgHjAnNjCoIiKeKiOgOiBeC_xHqqkZx_
	STATE_PUTTING_TEXT,		// _xZkqqHx_iDgFiDeMiDfIiDgHjAnNjCoIjCiGiBeC_xHqqkZx_
	STATE_STOP_PUT_TEXT,	// _xZkqqHx_iDgFiDeMiDfIiDgHjAnNjCoIiPeJjHlJiBeC_xHqqkZx_
	STATE_DO_PUT_TEXT,		// _xZkqqHx_iDgFiDeMiDfIiDgHjAnNjCoIiBeC_xHqqkZx_
	STATE_STOP_PUT_TEXT_2,	// _xZkqqHx_iDgFiDeMiDfIiDgHjAnNjCoIiPeJjHlJ_xHqqkZx__2_xZkqqHx_iBeC_xHqqkZx_
	STATE_CONTEXT_MENU_LINK_2,	// _xZkqqHx_iDiBiDgKiDiFiBfLjFfMiOkG_xHqqkZx___xZkqqHx_iDiKiDjDiDeO_xHqqkZx__2_xZkqqHx_iBeC_xHqqkZx_
	STATE_LINK_COMMAND_PUT,	// _xZkqqHx_iDiKiDjDiDeOiDfCiDhNiDjDiDgI_xHqqkZx___xZkqqHx_jEhKjChFiBeC_xHqqkZx_
	STATE_END,				// _xZkqqHx_iPpDjBnEiPeJjHlJiBeC_xHqqkZx_
};

protected:
	const FCObjDynabase* m_pReference;	// _xZkqqHx_iDiKiDhEiDeAiDiMiDjDiDfIjFjEjFgJiBeC_xHqqkZx_
	DBLPoint	m_mmptReferenceHSz;	// _xZkqqHx_iDiKiDhEiDeAiDiMiDjDiDfIjFjEjFgJiDhEiDiMiBfLiDiAiCmMiDfEiDeDiDfJ_xHqqkZx_/2_xZkqqHx_iBeC_xHqqkZx_
	DBLPoint	m_mmptReferenceLT;	// _xZkqqHx_iDiKiDhEiDeAiDiMiDjDiDfIjFjEjFgJiDhEiDiMiBfLiDiAiCmMiNlGiPoDiBeC_xHqqkZx_

// 01.08.13 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	FCObjDynabase*	m_pNewObject;		// _xZkqqHx_iDiKiDhEiDeAiDiMiDjDiDfIjFjEjFgJiCkJiCoHiNoMjAkMiClDiCoKiClNjFjEjFgJiBeC_xHqqkZx_
	DWORD		m_dwPutLinkKind;	// _xZkqqHx_jEhKjChFiClHiCoJiOjOiCmMiDiKiDjDiDeOiOoNjHnOiBeC_xHqqkZx_

	//----- _xZkqqHx_iMjPiNpFiMiLiJmK_xHqqkZx_ -----
	FCObjDynabase*	m_pHitMolipObj;	// _xZkqqHx_iDiKiDjDiDeOjFjEjFgJiBeC_xHqqkZx_
	long		m_lHitMolip;	// _xZkqqHx_iDiKiDjDiDeOiDiCiDiKiDhGiBeC_xHqqkZx_
}; // class FCToolBasePutCreate.

#endif//__ToolBasePutCreate_h
