#if !defined(AFX_PURSUERTEXT_H__748732D1_E744_4ECC_AAC6_7979E3D80904__INCLUDED_)
#define AFX_PURSUERTEXT_H__748732D1_E744_4ECC_AAC6_7979E3D80904__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// PursuerText.h : _xZkqqHx_iDhHiDgCiDfPiBfL_xHqqkZx_ _xZkqqHx_iDhEiDeAiDeDiDiL_xHqqkZx_
//

#include "WndBase.h"	// For Baseclass.

#ifdef SUPER_CLASS
#undef SUPER_CLASS
#endif
#define SUPER_CLASS CFCWndBase

/*************************************************************************
 * <_xZkqqHx_iNfMjBkCjBmM_xHqqkZx_>	FCSplitTextRec
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_iDfOiDePiBeBiJpMiNhDiCpAiKnMiCnOjFlGiOjKjHpBiCpAiBeBiJpMiNhDiCmGiDfOiDePiImKjChFiCmFjFkKiKiEiClFiClNiCmGiCkLiCmJ_xHqqkZx_
 *			_xZkqqHx_iIoKiCmCiCmMiDfKiDePiDiBiDjDiDgHiCpAjFfMiClHiNfMjBkCjBmMiBeC_xHqqkZx_
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	05.07.21 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
struct FCSplitTextRec
{
	FCSplitTextRec () : m_rtTextFrame(0,0,0,0), m_bIsConstWidth(FALSE), m_bIsBold(FALSE), m_bIsCR(FALSE) {}
	CRect		m_rtTextFrame;		// _xZkqqHx_iDgFiDeMiDfIiDgHiCmJiKePjAnKiClHiCoJiDhEiDiMiBfLiDiAiBeC_xHqqkZx_
	WString		m_wstrLink;			// _xZkqqHx_iDiKiDjDiDeOjFlGiOjKjHpBiBeC_xHqqkZx_
	BOOL		m_bIsConstWidth;	// _xZkqqHx_jDjJjFjNjFlGiOjKjHpBiCkJiBeI_xHqqkZx_
// 06.05.20 Fukushiro M. 1_xZkqqHx_iNhDjCmHiJmB_xHqqkZx_ ()
	BOOL		m_bIsBold;			// _xZkqqHx_jBlOjFlGiOjKiCkJiBeI_xHqqkZx_
	WString		m_wstrText;			// _xZkqqHx_iDgFiDeMiDfIiDgHiBeC_xHqqkZx_
	vector<int>	m_viDxWidths;		// _xZkqqHx_jFlGiOjKjFjNjEhKjHpBiBeC_xHqqkZx_
	BOOL		m_bIsCR;			// _xZkqqHx_iDgFiDeMiDfIiDgHiCmMiNmFiMoDiCkKiJpMiNhDiCkJiBeI_xHqqkZx_
}; // struct FCSplitTextRec.

/////////////////////////////////////////////////////////////////////////////
// CFCPursuerText _xZkqqHx_iDeFiDeCiDjDiDgIiDeF_xHqqkZx_

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

// _xZkqqHx_iDfCiDjDiDfIiDgHiDiJiDeOiDfGiDiHiDjD_xHqqkZx_
public:
	CFCPursuerText ();

// _xZkqqHx_iDiGiBfLiDfFiKnGjAjEiBeC_xHqqkZx_
public:
	virtual BOOL	Create ();
//----- 06.03.15 Fukushiro M. _xZkqqHx_jCmHiJmBiOgO_xHqqkZx_ ()-----
	virtual void	RegisterPopHintTarget (HWND hwnd);
	virtual void	UnregisterPopHintTarget (HWND hwnd);
//----- 06.03.15 Fukushiro M. _xZkqqHx_jCmHiJmBiPeJ_xHqqkZx_ ()-----
	virtual void	SetTargetInfo (const wchar_t* wcpText);
	virtual void	SetTargetInfo (DWORD dwCommandId, HWND hwndMenu = NULL);
	virtual void	OnMouseMove ();
	virtual void	OnMouseButton ();
	virtual void	OnKeyboard ();
	virtual void	OnScroll ();
	virtual void	OnActivate ();
	virtual void	OnDeactivate ();
	virtual void	OnShow ();
	virtual void	OnHide ();
	virtual BOOL	IsActive () const;
	virtual void	GetHintText (WString& wstrText) const;

protected:
	virtual void	OnEvent (int iEvent);
	virtual int		TransFDA (int iState, int iEvent);
	virtual void	StateFDA (int iState);

	//----- _xZkqqHx_jBeKiInKiPpDjBnEiPiIjHjN_xHqqkZx_ -----
	virtual void	StateIdle ();
	virtual void	StateBeforeShow ();
	virtual void	StateShow ();
	virtual void	StateHide ();
	virtual void	StateMove ();
	virtual void	StateCheckHitLink ();
	virtual void	StateDoLink ();
	virtual void	StateShiftOn ();

	virtual CSize	CalcSize ();
	virtual long	GetHitMessageIndex () const;
	virtual BOOL	GetIsThereLink () const;
	virtual CPoint	GetUpperLeft (CPoint ptMouse, CSize szPopHint) const;

protected:
// _xZkqqHx_iClBiCmMiDeOiDiJiDfIiMmFjHeMiCmMjCoIiLgAiBeC_xHqqkZx_
// _xZkqqHx_iDeDiDhIiDjDiDgHiBeC_xHqqkZx_
enum
{
	EVENT_NONE = 0,					// _xZkqqHx_iDeDiDhIiDjDiDgHjGlDiClFiBeC_xHqqkZx_
	EVENT_MOUSE,					// _xZkqqHx_iDhNiDeFiDfIiDeDiDhIiDjDiDgHiBeC_xHqqkZx_
	EVENT_SHIFT_KEY,				// _xZkqqHx_iDfGiDhEiDgHiDeMiBfLiDeDiDhIiDjDiDgHiBeC_xHqqkZx_
	EVENT_ANY_KEY,					// _xZkqqHx_iCkCiClIiCoKiCkJiCmMiDeMiBfLiDeDiDhIiDjDiDgHiBeC_xHqqkZx_
	EVENT_ACTIVATE,					// _xZkqqHx_iKiIjAkLiJlLiDeDiDhIiDjDiDgHiBeC_xHqqkZx_
	EVENT_DEACTIVATE,				// _xZkqqHx_jFhDiKiIjAkLiJlLiDeDiDhIiDjDiDgHiBeC_xHqqkZx_
	EVENT_SHOW,						// _xZkqqHx_jFfMiOkGiJlLiDeDiDhIiDjDiDgHiBeC_xHqqkZx_
	EVENT_HIDE,						// _xZkqqHx_jEpBjFfMiOkGiJlLiDeDiDhIiDjDiDgHiBeC_xHqqkZx_
	EVENT_ON_TIMER,					// _xZkqqHx_iDfOiDeDiDhNiBfLiBeC_xHqqkZx_
};

// _xZkqqHx_iPpDjBnEiBeC_xHqqkZx_
enum
{
	STATE_NONE = 0,			// _xZkqqHx_iPpDjBnEjGlDiClFiBeC_xHqqkZx_
	STATE_IDLE,				// _xZkqqHx_jBnCiLeAiBeC_xHqqkZx_
	STATE_BEFORE_SHOW,		// _xZkqqHx_jFfMiOkGjBePiPiIjHjNiBeC_xHqqkZx_
	STATE_SHOW,				// _xZkqqHx_jFfMiOkGiBeC_xHqqkZx_
	STATE_SHOW_2,			// _xZkqqHx_jFfMiOkGiBeC_xHqqkZx_
	STATE_HIDE,				// _xZkqqHx_jEpBjFfMiOkGiPiIjHjNiBeC_xHqqkZx_
	STATE_HIDE_1,			// _xZkqqHx_jEpBjFfMiOkGiPiIjHjNiBeC_xHqqkZx_
	STATE_HIDE_2,			// _xZkqqHx_jEpBjFfMiOkGiPiIjHjNiBeC_xHqqkZx_
	STATE_HIDE_3,			// _xZkqqHx_jEpBjFfMiOkGiPiIjHjNiBeC_xHqqkZx_
	STATE_HIDE_4,			// _xZkqqHx_jEpBjFfMiOkGiPiIjHjNiBeC_xHqqkZx_
// 05.07.22 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	STATE_AFTER_HIDE,		// _xZkqqHx_jEpBjFfMiOkGiMoDiPiIjHjNiBeC_xHqqkZx_
	STATE_WAIT_ACTIVATE,	// _xZkqqHx_iKiIjAkLiJlLjBnCiClPiPiIjHjNiBeC_xHqqkZx_

	STATE_MOVE,				// _xZkqqHx_iInKjDkOiPiIjHjNiBeC_xHqqkZx_
	STATE_CHECK_HIT_LINK,	// _xZkqqHx_iDiKiDjDiDeOiDhBiDgCiDgHiDgAiDeGiDgCiDeOiPiIjHjNiBeC_xHqqkZx_
	STATE_DO_LINK,			// _xZkqqHx_iDiKiDjDiDeOiPiIjHjNiBeC_xHqqkZx_
	STATE_SHIFT_ON,			// _xZkqqHx_iDfGiDhEiDgHiDeJiDjDiPiIjHjNiBeC_xHqqkZx_
};

// _xZkqqHx_iDiGiBfLiDfFjFmPjAjEiBeC_xHqqkZx_
protected:
	static LPCTSTR	m_lpszClassName;	// AfxRegisterWndClass_xZkqqHx_iCmFjDgPjIfOiClDiCoKiClNiDeOiDiJiDfIjGlMiCpAjFnLjBlGiBeC_xHqqkZx_
	HICON			m_hIconTackOn;		// _xZkqqHx_iJoGjFgF_xHqqkZx_ON_xZkqqHx_iCmMiDeBiDeDiDfCiDjDiBeC_xHqqkZx_
	HICON			m_hIconTackOff;		// _xZkqqHx_iJoGjFgF_xHqqkZx_OFF_xZkqqHx_iCmMiDeBiDeDiDfCiDjDiBeC_xHqqkZx_

//----- 05.07.23 Fukushiro M. _xZkqqHx_jCmHiJmBiOgO_xHqqkZx_ ()-----
	long			m_pxMonoCharWidth;	// _xZkqqHx_iMmFjCoIjFjNiDhEiDeIiDjDiDgHiCmMjFlGiOjKjFjNiCpAiOfKiPgPiBeC_xHqqkZx_
	long			m_pxMonoCharHeight;	// _xZkqqHx_iMmFjCoIjFjNiDhEiDeIiDjDiDgHiCmMjFlGiOjKiNiCiCpAiOfKiPgPiBeC_xHqqkZx_
//----- 05.07.23 Fukushiro M. _xZkqqHx_jCmHiJmBiPeJ_xHqqkZx_ ()-----

// 06.03.15 Fukushiro M. 1_xZkqqHx_iNhDjCmHiJmB_xHqqkZx_ ()
	set<HWND>		m_stTargetHwnd;		// _xZkqqHx_iDfOiBfLiDfBiDgCiDgHiDeFiDeCiDjDiDgIiDeFiBeC_xHqqkZx_

	int				m_iCurState;		// _xZkqqHx_iMlLiNnNiCmMiPpDjBnEiBeC_xHqqkZx_

// 05.08.04 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	DWORD			m_dwCommandId;		// _xZkqqHx_iDhBiDgCiDgHjCiGiCmMiDfCiDhNiDjDiDgIiBeC_xHqqkZx_
	HWND			m_hwndMenu;			// _xZkqqHx_iDhBiDgCiDgHjCiGiCmMiDiBiDgKiDiFiBfLiBeC_xHqqkZx_
	WString			m_wstrNewMessage;	// _xZkqqHx_jAfGiClFiCkNjAnNjCoIiClDiCoKiCoJiDfOiBfLiDfBiDgCiDgHiDeJiDhFiDfHiDeGiDeOiDgHiCmMiClNiCnPiCmMiDiBiDgCiDfKiBfLiDfHiBeC_xHqqkZx_
	WString			m_wstrCurMessage;	// _xZkqqHx_iDfOiBfLiDfBiDgCiDgHiDeJiDhFiDfHiDeGiDeOiDgHiCmMiClNiCnPiCmMiDiBiDgCiDfKiBfLiDfHiBeC_xHqqkZx_
	vector<FCSplitTextRec>	m_vSplitCurMessage;

	BOOL			m_bIsShift;			// _xZkqqHx_iDfGiDhEiDgHiDeMiBfLiCmMiPpDjBnEiBeC_xHqqkZx_
	BOOL			m_bIsAnyKeyOn;		// _xZkqqHx_iCkCiClIiCoKiCkJiCmMiDeMiBfLiBeC_xHqqkZx_

	CPoint			m_ptMouse;			// _xZkqqHx_jFfMiOkGjCiGiCmMiDhNiDeFiDfIiNmAjFfHiBeC_xHqqkZx_
	long			m_lCurHitLinkIndex;	// _xZkqqHx_iDhBiDgCiDgHjCiGiCmMiDiKiDjDiDeOiDeDiDjDiDgGiDgCiDeOiDfIiBeC_xHqqkZx_

	FDMILLISECTIME	m_mdmtEventTime;	// _xZkqqHx_iDfOiDeDiDhNiBfLiDeDiDhIiDjDiDgHiCkKjEkNjAlGiClHiCoJiOjOiKnEiBeC_xHqqkZx_
	FDMILLISECTIME	m_mdmtTimeer;		// _xZkqqHx_iDfOiDeDiDhNiBfLiBeC_xHqqkZx_

// _xZkqqHx_iDeBiDgHiDiKiDhCiDiFiBfLiDgH_xHqqkZx_
public:

// _xZkqqHx_iDeJiDhJiDiMiBfLiDfGiDiHiDjD_xHqqkZx_
public:

// _xZkqqHx_iDeJiBfLiDgPiBfLiDiJiDeDiDgI_xHqqkZx_
	// ClassWizard _xZkqqHx_iCmNiJlMjBhKiKnGjAjEiCmMiDeJiBfLiDgPiBfLiDiJiDeDiDgIiCpAjAlGjAkMiClFiCnMiClHiBeC_xHqqkZx_

	//{{AFX_VIRTUAL(CFCPursuerText)
	//}}AFX_VIRTUAL

// _xZkqqHx_iDeDiDjDiDhGiDiKiDiBiDjDiDgFiBfLiDfGiDiHiDjD_xHqqkZx_
public:
	virtual ~CFCPursuerText();

	// _xZkqqHx_jAlGjAkMiClDiCoKiClNiDiBiDgCiDfKiBfLiDfH_xHqqkZx_ _xZkqqHx_iDhNiDgCiDhGiKnGjAjE_xHqqkZx_
protected:
	//{{AFX_MSG(CFCPursuerText)
	afx_msg void OnPaint();
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnDestroy();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
}; // class CFCPursuerText.

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ _xZkqqHx_iCmNjBePiNhDiCmMjClMjBePiCmJjCmHiJmBiCmMjAoJiMlOiCpAjBhNjDpMiClFiCnMiClHiBeC_xHqqkZx_

#endif // !defined(AFX_PURSUERTEXT_H__748732D1_E744_4ECC_AAC6_7979E3D80904__INCLUDED_)
