#if !defined(AFX_SHEETLISTCTRL_H__3A59EA79_704D_4F5F_9C13_8FBB87A1BB9C__INCLUDED_)
#define AFX_SHEETLISTCTRL_H__3A59EA79_704D_4F5F_9C13_8FBB87A1BB9C__INCLUDED_

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

// 03.05.03 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//#include <map>					// For map template.
#include "SheetManager.h"		// For FDSheetIDVector.
#include "ListCtrlFDA.h"		// For CFCListCtrlFDA.
#include "ControlFDATmpl.h"		// For CFCControlFDATmpl.
#include "MultiControlTmpl.h"	// Super class.

#ifdef SUPER_CLASS
#undef SUPER_CLASS
#endif
#define SUPER_CLASS CFCMultiControlTmpl< CFCControlFDATmpl<CFCListCtrlFDA> >


/*************************************************************************
 * <_xZkqqHx_iDeOiDiJiDfI_xHqqkZx_>	FCSheetCtrlRec
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_iDeBiDeDiDgFiDiAiCmGiClFiCmEjAnNjCoIiClHiCoJiDfGiBfLiDgHiCmMiPoOjFpB_xHqqkZx_
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	00.12.26 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
struct FCSheetCtrlRec
{
//	DWORD	dwId;		// _xZkqqHx_iDfGiBfLiDgHiCmM_xHqqkZx_ID_xZkqqHx_iBeCiDeBiDeDiDgFiDiAjDpMiCoKjBnGiCkGiOjOiCmJiMlDiCmMiPiHiPjIiCpAiLeMjIfOiBeC_xHqqkZx_
	WString	strName;	// _xZkqqHx_iDfGiBfLiDgHjGlMiBeC_xHqqkZx_
}; // struct FCSheetCtrlRec.

typedef	auto_ptr<FCSheetCtrlRec>		SheetCtrlRecAuto;
typedef	map<DWORD, SheetCtrlRecAuto>	IdToSheetCtrlRecMap;

/////////////////////////////////////////////////////////////////////////////
// CFCSheetListCtrl _xZkqqHx_iDeFiDeCiDjDiDgIiDeF_xHqqkZx_

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

// _xZkqqHx_iDfCiDjDiDfIiDgHiDiJiDeOiDfGiDiHiDjD_xHqqkZx_
public:
	CFCSheetListCtrl();

// _xZkqqHx_iDiGiBfLiDfFiKnGjAjEiBeC_xHqqkZx_
public:
	virtual void	Initialize ();
	virtual void	UpdateColumnWidth ();
	virtual void	SetCurrentSheetId (SheetID stid);
	virtual DWORD	GetCurrentSheetId () const;

	virtual	void	AppendRec (DWORD dwId, const FCSheetCtrlRec& rec);
	virtual	void	SetIdOrder (DWORD dwIdSz, const DWORD dwId[]);
	virtual	void	GetIdOrder (FDSheetIDVector& vstid) const;
	virtual	const FCSheetCtrlRec*	GetRec (DWORD dwId) const;
	virtual	BOOL	CanDeleteItem () const;

protected:
	virtual long	GetSubMenuIndex (long lId) const;
	virtual	BOOL	OnInsertItem (long lIndex, DWORD dwId);
	virtual	BOOL	OnChangeItem (long lIndex, DWORD dwId);
	virtual	BOOL	OnDeleteItem (long lIndex, DWORD dwId);

	//----- _xZkqqHx_iDeDiDhIiDjDiDgHiPiIjHjNiKnGjAjE_xHqqkZx_ -----
	virtual long	TransFDA (long iState, DWORD dwMessage, DWORD dwCommand = 0);
	virtual void	StateFDA (long iState);
	//----- _xZkqqHx_jBeKiInKiPpDjBnEiPiIjHjNiKnGjAjE_xHqqkZx_ -----
	virtual void	StateClickNotNameColumn ();	// _xZkqqHx_iDfGiBfLiDgHjGlMiImIiKePiDeOiDiKiDgCiDeOiBeC_xHqqkZx_

// _xZkqqHx_iDiGiBfLiDfFjCoIiLgAiBeC_xHqqkZx_
protected:
enum
{
	STATE_BEGIN = BASE_CLASS::STATE_END,	// _xZkqqHx_iPpDjBnEiKeKiOgOiBeC_xHqqkZx_
	STATE_CLICK_NOT_NAME_COLUMN,	// _xZkqqHx_iDfGiBfLiDgHjGlMiImIiKePiDeOiDiKiDgCiDeOiBeC_xHqqkZx_
	STATE_END,						// _xZkqqHx_iPpDjBnEiPeJjHlJiBeC_xHqqkZx_
};

// _xZkqqHx_iDiGiBfLiDfFjFmPjAjEiBeC_xHqqkZx_
protected:
	CImageList	m_imageList;			// _xZkqqHx_iDeDiDiBiBfLiDfHiDiKiDfIiDgHiBeC_xHqqkZx_
	CImageList	m_imageHeadList;		// _xZkqqHx_iDhHiDgCiDfPjHhAiDeDiDiBiBfLiDfHiDiKiDfIiDgHiBeC_xHqqkZx_
	SheetID		m_stidCurrent;			// _xZkqqHx_jFfMiOkGjCiGiCmMiDfGiBfLiDgHiBeC_xHqqkZx_
	IdToSheetCtrlRecMap	m_mpIdToRec;

// _xZkqqHx_iDeBiDgHiDiKiDhCiDiFiBfLiDgH_xHqqkZx_
public:

// _xZkqqHx_iDeJiDhJiDiMiBfLiDfGiDiHiDjD_xHqqkZx_
public:
	virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);

// _xZkqqHx_iDeJiBfLiDgPiBfLiDiJiDeDiDgI_xHqqkZx_
	// ClassWizard _xZkqqHx_iCmNiJlMjBhKiKnGjAjEiCmMiDeJiBfLiDgPiBfLiDiJiDeDiDgIiCpAjAlGjAkMiClFiCnMiClHiBeC_xHqqkZx_
	//{{AFX_VIRTUAL(CFCSheetListCtrl)
	//}}AFX_VIRTUAL

// _xZkqqHx_iDeDiDjDiDhGiDiKiDiBiDjDiDgFiBfLiDfGiDiHiDjD_xHqqkZx_
public:
	virtual ~CFCSheetListCtrl();

	// _xZkqqHx_jAlGjAkMiClDiCoKiClNiDiBiDgCiDfKiBfLiDfH_xHqqkZx_ _xZkqqHx_iDhNiDgCiDhGiKnGjAjE_xHqqkZx_
protected:
	//{{AFX_MSG(CFCSheetListCtrl)
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()

//----- 01.03.18 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
//	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
//	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
//	afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
//	afx_msg void OnRbtnItemMoveBegin();
//	afx_msg void OnRbtnItemMoveCancel();
//	afx_msg void OnRbtnItemMovePrev();
//	afx_msg void OnRbtnItemInsertPrev();
//	afx_msg void OnRbtnItemDelete();
//	afx_msg void OnRbtnItemChange();
//----- 01.03.18 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----

}; // class CFCSheetListCtrl.

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

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

#endif // !defined(AFX_SHEETLISTCTRL_H__3A59EA79_704D_4F5F_9C13_8FBB87A1BB9C__INCLUDED_)
