// StcIcons.cpp : _xZkqqHx_iDeDiDjDiDhGiDiKiDiBiDjDiDgFiBfLiDfGiDiHiDjD_xHqqkZx_ _xZkqqHx_iDhEiDeAiDeDiDiL_xHqqkZx_
//

#include "stdafx.h"
#include "DynamicDraw.h"
#include "StcIcons.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFCStcIcons

CFCStcIcons::CFCStcIcons ()
{
} // CFCStcIcons::CFCStcIcons.

CFCStcIcons::~CFCStcIcons ()
{
} // CFCStcIcons::~CFCStcIcons.

/////////////////////////////////////////////////////////////////////////////
// CFCStcIcons _xZkqqHx_iDiGiBfLiDfFiKnGjAjEiBeC_xHqqkZx_

/*************************************************************************
 * <_xZkqqHx_iKnGjAjE_xHqqkZx_>	CFCStcIcons::Create
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	
 *
 * <_xZkqqHx_iIpIjAjE_xHqqkZx_>	
 *
 * <_xZkqqHx_jFnEjCgM_xHqqkZx_>	
 *
 * <_xZkqqHx_iJpAjAoA_xHqqkZx_>	
 *
 * <_xZkqqHx_jCiNiInD_xHqqkZx_>	
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.01.07 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
BOOL CFCStcIcons::Create (const CSize& size, DWORD dwStyle, const CRect& rect,
							CWnd* pParentWnd, UINT nID)
{
	if (CStatic::Create(_T(""), dwStyle, rect, pParentWnd, nID))
	{
		m_szImage = size;
		m_imageList.Create(size.cx, size.cy, ILC_MASK, 4, 4);
		return TRUE;
	} else
	{
		return FALSE;
	}
} // CFCStcIcons::Create.

/*************************************************************************
 * <_xZkqqHx_iKnGjAjE_xHqqkZx_>	CFCStcIcons::AddIcon
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	
 *
 * <_xZkqqHx_iIpIjAjE_xHqqkZx_>	
 *
 * <_xZkqqHx_jFnEjCgM_xHqqkZx_>	
 *
 * <_xZkqqHx_iJpAjAoA_xHqqkZx_>	
 *
 * <_xZkqqHx_jCiNiInD_xHqqkZx_>	
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.01.07 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
DWORD CFCStcIcons::AddIcon (DWORD dwResID)
{
	return m_imageList.Add(FFGetApp()->LoadIcon(dwResID));
} // CFCStcIcons::AddIcon.

/*************************************************************************
 * <_xZkqqHx_iKnGjAjE_xHqqkZx_>	CFCStcIcons::SetVisible
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	
 *
 * <_xZkqqHx_iIpIjAjE_xHqqkZx_>	
 *
 * <_xZkqqHx_jFnEjCgM_xHqqkZx_>	
 *
 * <_xZkqqHx_iJpAjAoA_xHqqkZx_>	
 *
 * <_xZkqqHx_jCiNiInD_xHqqkZx_>	
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.01.07 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
void CFCStcIcons::SetVisible (DWORD dwIdx, BOOL bShow)
{
	if (bShow)
		m_stVisible.insert(dwIdx);
	else
		m_stVisible.erase(dwIdx);
} // CFCStcIcons::AddIcon.

/*************************************************************************
 * <_xZkqqHx_iKnGjAjE_xHqqkZx_>	CFCStcIcons::ClearVisible
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	
 *
 * <_xZkqqHx_iIpIjAjE_xHqqkZx_>	
 *
 * <_xZkqqHx_jFnEjCgM_xHqqkZx_>	
 *
 * <_xZkqqHx_iJpAjAoA_xHqqkZx_>	
 *
 * <_xZkqqHx_jCiNiInD_xHqqkZx_>	
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.01.08 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
void CFCStcIcons::ClearVisible ()
{
	m_stVisible.clear();
} // CFCStcIcons::ClearVisible.

BEGIN_MESSAGE_MAP(CFCStcIcons, BASE_CLASS)
	//{{AFX_MSG_MAP(CFCStcIcons)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFCStcIcons _xZkqqHx_iDiBiDgCiDfKiBfLiDfH_xHqqkZx_ _xZkqqHx_iDgOiDjDiDgIiDiJ_xHqqkZx_

/*************************************************************************
 * <_xZkqqHx_iKnGjAjE_xHqqkZx_>	CFCStcIcons::OnPaint
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	
 *
 * <_xZkqqHx_iIpIjAjE_xHqqkZx_>	
 *
 * <_xZkqqHx_jFnEjCgM_xHqqkZx_>	
 *
 * <_xZkqqHx_iJpAjAoA_xHqqkZx_>	
 *
 * <_xZkqqHx_jCiNiInD_xHqqkZx_>	
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.01.07 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
void CFCStcIcons::OnPaint ()
{
	CPaintDC dc(this); // _xZkqqHx_jFgAiJoGjHhAiCmMiDgGiDgPiDeDiDfI_xHqqkZx_ _xZkqqHx_iDfCiDjDiDgFiDeMiDfIiDgH_xHqqkZx_
	// _xZkqqHx_jEhHiMgJjDgIiCoIiCmCiCnEiClFjHhAiCmMiDhFiDiJiDfGiBeC_xHqqkZx_
	CBrush brush(::GetSysColor(COLOR_3DFACE));
	// _xZkqqHx_iDeOiDiJiDeDiDeBiDjDiDgHjHmMiIoGiCpAiOoGjDlOiBeC_xHqqkZx_
	CRect rect;
	GetClientRect(rect);
	// _xZkqqHx_jEhHiMgJiCpAjDgIiCoIiCmCiCnEiClFiBeC_xHqqkZx_
	dc.FillRect(rect, &brush);

	long lY = (rect.Height() - m_szImage.cy) / 2;

	//----- _xZkqqHx_iDeBiDeDiDfCiDjDiCpAjFfMiOkG_xHqqkZx_ -----
	long lX = 0;
	DWORDSet::const_iterator iVi;
	for (iVi = m_stVisible.begin(); iVi != m_stVisible.end(); iVi++)
	{
		m_imageList.Draw(&dc, *iVi, CPoint(lX, lY), ILD_TRANSPARENT);
		lX += m_szImage.cx + 1;
	}
} // CFCStcIcons::OnPaint.
