#ifndef __ToolRichEdit_h
#define __ToolRichEdit_h

// 05.07.04 Fukushiro M. 1_xZkqqHx_iNhDjFmPiNfI_xHqqkZx_ ()
//#include "ToolBaseFDA.h"		// Super class.
#include "ToolBaseEdit.h"		// Super class.
#include "ToolRichEditTmpl.h"	// Super class.

#ifdef SUPER_CLASS
#undef SUPER_CLASS
#endif
// 05.07.04 Fukushiro M. 1_xZkqqHx_iNhDjFmPiNfI_xHqqkZx_ ()
//#define SUPER_CLASS FCToolRichEditTmpl<FCToolBaseFDA>
#define SUPER_CLASS FCToolRichEditTmpl<FCToolBaseEdit>


class FCObjDynabase;
class FCObjFigure;

class FCToolRichEdit : public SUPER_CLASS
{
protected:
typedef SUPER_CLASS BASE_CLASS;

public:
	FCToolRichEdit ();

	//----- _xZkqqHx_iDfEiDhFiDeOiDiJiDfIiCmFjEeDiInD_xHqqkZx_ -----
	virtual void	Select (CDC* pDC);

	// CanHandle _xZkqqHx_iCmFjFjEjFgJiCpAjAkHiMmAiClFiCmIiCkCiBeC_xHqqkZx_
	// _xZkqqHx_iDgFiDeMiDfIiDgHjFnCiPfHjFhDiJmCiCmMjFjEjFgJiCmGiNiHiCoNiClJiCmEjBeJjBpAiClFiCmEiCkCiCoJiPoKiNiHiCmJ_xHqqkZx_
	// _xZkqqHx_jBeJjBpAiCpAiJpAiPjMiClHiCoJiClBiCmGiCmIiCkNjBkGiNmAiCmJjFnCiPfHiCmFiCkLiCoJiCoGiCkEiCmJiClHiCoJiClNiCnPiBeC_xHqqkZx_

// 06.12.05 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual BOOL	CanHandle (const FCObjDynabase* pObj) const;
	virtual HCURSOR	GetDefaultIdleCursor () const;

//----- 05.07.05 Fukushiro M. _xZkqqHx_jCmHiJmBiOgO_xHqqkZx_ ()-----
	virtual void	OnAppendSelectObj (CDC* pDC, FCObjDynabase* pObj);
	virtual void	OnRemoveSelectObj (CDC* pDC, FCObjDynabase* pObj);
//----- 05.07.05 Fukushiro M. _xZkqqHx_jCmHiJmBiPeJ_xHqqkZx_ ()-----

//----- 05.07.05 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
//	//----- FCToolBaseFDA_xZkqqHx_iCmMiDfEiDhFiDeOiDiJiDfIiCmFjFeLjHhGiCmJiJjOiClGiCmE_xHqqkZx_ -----
//	virtual int		TransFDA (int iState, int iEvent);
//	virtual void	StateFDA (int iState, CDC* pDC);
//----- 05.07.05 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----
//----- 05.07.05 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
//	//----- _xZkqqHx_jBeKiInKiPpDjBnEiPiIjHjN_xHqqkZx_ -----
//	virtual void	StateSelectObj (CDC* pDC);				// _xZkqqHx_jFjEjFgJjBeJjBpAiBeC_xHqqkZx_
//----- 05.07.05 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----
//----- 05.06.06 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
//	virtual void	StateStartEncloseTextObj (CDC* pDC);	// _xZkqqHx_jFjEjFgJjFoPiImNiKeKiOgOiBeC_xHqqkZx_
//	virtual void	StateEnclosingTextObj (CDC* pDC);		// _xZkqqHx_jFjEjFgJjFoPiImNjCiGiBeC_xHqqkZx_
//	virtual void	StateStopEncloseTextObj (CDC* pDC);		// _xZkqqHx_jFjEjFgJjFoPiImNiPeJjHlJiBeC_xHqqkZx_
//----- 05.06.06 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----
// 05.07.05 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual void	StateStartEditText (CDC* pDC);			// _xZkqqHx_iDgFiDeMiDfIiDgHjFnCiPfHiKeKiOgOiBeC_xHqqkZx_

protected:
	//----- FCToolBaseEdit_xZkqqHx_iCmMiDfEiDhFiDeOiDiJiDfIiCmFjFeLjAhL_xHqqkZx_ -----
	virtual void	ResetEditHandleList ();

protected:
// _xZkqqHx_iClBiCmMiDeOiDiJiDfIiMmFjHeMiCmMjCoIiLgAiBeC_xHqqkZx_
enum
{
	STATE_BEGIN = BASE_CLASS::STATE_END,	// _xZkqqHx_iPpDjBnEiKeKiOgOiBeC_xHqqkZx_
//----- 05.07.05 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
//	STATE_SELECT_OBJ,				// _xZkqqHx_jFjEjFgJjBeJjBpAiBeC_xHqqkZx_
////----- 05.06.06 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
////	STATE_START_ENCLOSE_TEXT_OBJ,	// _xZkqqHx_jFjEjFgJjFoPiImNiKeKiOgOiBeC_xHqqkZx_
////	STATE_ENCLOSING_TEXT_OBJ,		// _xZkqqHx_jFjEjFgJjFoPiImNjCiGiBeC_xHqqkZx_
////	STATE_STOP_ENCLOSE_TEXT_OBJ,	// _xZkqqHx_jFjEjFgJjFoPiImNiPeJjHlJiBeC_xHqqkZx_
////----- 05.06.06 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----
//	STATE_START_EDIT_TEXT,			// _xZkqqHx_iDgFiDeMiDfIiDgHjFnCiPfHiKeKiOgOiBeC_xHqqkZx_
//----- 05.07.05 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----
	STATE_END,						// _xZkqqHx_iPpDjBnEiPeJjHlJiBeC_xHqqkZx_
};

protected:
	BOOL	m_bToolSelecting;		// Select_xZkqqHx_iKnGjAjEiOmAiNhDjCiGiBeI_xHqqkZx_

//----- 05.07.05 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
//	//----- _xZkqqHx_iMjPiNpFiMiLiJmKiCmMjFmPjAjE_xHqqkZx_ -----
//	FCObjDynabase*		m_pHitObj;
//	// _xZkqqHx_jFnCiPfHjBmOiPnLiCmMjFjEjFgJiBeC_xHqqkZx_
//	FCObjFigure*	m_pTargetObj;
//	// _xZkqqHx_jAgFjFjEjFgJiBeCiDePiDiLiBfLiDhGjFjEjFgJiBeC_xHqqkZx_
//	FCObjDynabase*		m_pTopObj;
//----- 05.07.05 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----
}; // class FCToolRichEdit.

// 02.12.05 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//extern FCToolRichEdit	g_toolRichEdit;

#endif//__ToolRichEdit_h
