#ifndef __ToolSelect_h
#define __ToolSelect_h

#include "ToolBaseFDA.h"		// Super super class.
#include "ToolSelectObjTmpl.h"	// Super class.
#include "ToolTextFindTmpl.h"	// Super class.

#ifdef SUPER_CLASS
#undef SUPER_CLASS
#endif
#define SUPER_CLASS FCToolTextFindTmpl< FCToolSelectObjTmpl<FCToolBaseFDA, FCToolSelectObjTmplId> >

class FCToolSelect : public SUPER_CLASS
{
protected:
typedef SUPER_CLASS BASE_CLASS;
typedef BASE_CLASS::BASE_CLASS BASE_BASE_CLASS;

public:
	FCToolSelect ();
	virtual BOOL	CanSelectTool () const;
// 06.12.09 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual void	OnDraw (CDC* pDC);

protected:
	virtual BOOL	CheckHitText ();

	//----- 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	StateClrselSelXXX (XXX_ObjDynabase, CDC* pDC);	// XXX_xZkqqHx_iDeJiDhFiDfHiDeGiDeOiDgHjBeJjBpAiPmBiLiOjCmHiJmBiBeC_xHqqkZx_
	virtual void	StatePreUnselXXX (XXX_ObjDynabase, CDC* pDC);	// XXX_xZkqqHx_iDeJiDhFiDfHiDeGiDeOiDgHjBeJjBpAiJpAiPjMjBePiBeC_xHqqkZx_
	virtual void	StateIdle (CDC* pDC);				// _xZkqqHx_iDeBiDeDiDgIiDiLiBeC_xHqqkZx_
	virtual void	StateStartSelectText (CDC* pDC);	// _xZkqqHx_iDgFiDeMiDfIiDgHjBeJjBpAiKeKiOgOiBeC_xHqqkZx_
	virtual void	StateSelectingText (CDC* pDC);		// _xZkqqHx_iDgFiDeMiDfIiDgHjBeJjBpAjCiGiBeC_xHqqkZx_
	virtual void	StateStopSelectText (CDC* pDC);		// _xZkqqHx_iDgFiDeMiDfIiDgHjBeJjBpAiPeJjHlJiBeC_xHqqkZx_

protected:
// _xZkqqHx_iClBiCmMiDeOiDiJiDfIiMmFjHeMiCmMjCoIiLgAiBeC_xHqqkZx_
enum
{
	STATE_BEGIN = BASE_CLASS::STATE_END,	// _xZkqqHx_iPpDjBnEiKeKiOgOiBeC_xHqqkZx_
	STATE_START_SELECT_TEXT,	// _xZkqqHx_iDgFiDeMiDfIiDgHjBeJjBpAiKeKiOgOiBeC_xHqqkZx_
	STATE_SELECTING_TEXT,		// _xZkqqHx_iDgFiDeMiDfIiDgHjBeJjBpAjCiGiBeC_xHqqkZx_
	STATE_STOP_SELECT_TEXT,		// _xZkqqHx_iDgFiDeMiDfIiDgHjBeJjBpAiPeJjHlJiBeC_xHqqkZx_
	STATE_END,					// _xZkqqHx_iPpDjBnEiPeJjHlJiBeC_xHqqkZx_
};

protected:
	FCObjFigure*	m_pHitTextObj;			// _xZkqqHx_iDeOiDiKiDgCiDeOiCmJiDhBiDgCiDgHiClFiClNiDgFiDeMiDfIiDgHjFjEjFgJiBeC_xHqqkZx_
	long			m_lHitCharIndexFrom;	// _xZkqqHx_iDeOiDiKiDgCiDeOiCmJiDhBiDgCiDgHiClFiClNjFlGiOjKiDeDiDjDiDgGiDgCiDeOiDfIiBeC_xHqqkZx_
	long			m_lHitCharIndexUntil;	// _xZkqqHx_iDeOiDiKiDgCiDeOiCmJiDhBiDgCiDgHiClFiClNjFlGiOjKiDeDiDjDiDgGiDgCiDeOiDfIiBeC_xHqqkZx_
}; // class FCToolSelect.

#endif//__ToolSelect_h
