#if !defined(AFX_CHIPGROUPLISTCTRL_H__0BE27853_D888_442D_881F_F4B4C216543C__INCLUDED_)
#define AFX_CHIPGROUPLISTCTRL_H__0BE27853_D888_442D_881F_F4B4C216543C__INCLUDED_

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

#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> >


typedef	auto_ptr<FCChipGroupRec>			ChipGroupCtrlRecAuto;
typedef	map<DWORD, ChipGroupCtrlRecAuto>	IdToChipGroupCtrlRecMap;

/////////////////////////////////////////////////////////////////////////////
// CFCChipGroupListCtrl _xZkqqHx_iDeFiDeCiDjDiDgIiDeF_xHqqkZx_

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

// _xZkqqHx_iDfCiDjDiDfIiDgHiDiJiDeOiDfGiDiHiDjD_xHqqkZx_
public:
	CFCChipGroupListCtrl();

// _xZkqqHx_iDiGiBfLiDfFiKnGjAjEiBeC_xHqqkZx_
public:
	virtual void	Initialize ();
	virtual void	UpdateColumnWidth ();
	virtual void	SetCurrentChipGroupId (ChipGroupID cgid);
	virtual DWORD	GetCurrentChipGroupId () const;

	virtual	void	AppendRec (DWORD dwId, const FCChipGroupRec& rec);
	virtual	void	SetIdOrder (DWORD dwIdSz, const DWORD dwId[]);
	virtual	void	GetIdOrder (FDChipGroupIDVector& vcgid) const;
	virtual	const FCChipGroupRec*	GetRec (DWORD dwId) const;
	virtual	BOOL	CanDeleteItem () const;

protected:
// 05.07.04 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	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_
	ChipGroupID		m_cgidCurrent;			// _xZkqqHx_jFfMiOkGjCiGiCmMiDfGiBfLiDgHiBeC_xHqqkZx_
	IdToChipGroupCtrlRecMap	m_mpIdToRec;

// _xZkqqHx_iDeBiDgHiDiKiDhCiDiFiBfLiDgH_xHqqkZx_
public:

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

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

// _xZkqqHx_iDeDiDjDiDhGiDiKiDiBiDjDiDgFiBfLiDfGiDiHiDjD_xHqqkZx_
public:
	virtual ~CFCChipGroupListCtrl();

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

	DECLARE_MESSAGE_MAP()
}; // class CFCChipGroupListCtrl.

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

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

#endif // !defined(AFX_CHIPGROUPLISTCTRL_H__0BE27853_D888_442D_881F_F4B4C216543C__INCLUDED_)
