/*=============================================================================
 *
 *  Filename:						MatList.cpp
 *  Version:            1.0
 *  Date:								06/11/96
 *  Author:             V.L.
 *
 *  Description:				implementation of MaterialList view
 *
 *===========================================================================*/

#include "stdafx.h"
#include "Acp_base.h"
#include "itf.h"
#include "incgam.h"

#include "_interf.hpp"
#include "PatternList.hpp"
#include "TGMDef.hpp"
#include "matres.h"

extern Material_Interface *gs_p_oMaterialInterface;

//=============================================================================
//  Description : Message map
//=============================================================================
BEGIN_MESSAGE_MAP(CPatternedListView, C3ListView)
	//{{AFX_MSG_MAP(CPatternedListView)
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

//=============================================================================
//  Description : constructor
//=============================================================================
CPatternedListView::CPatternedListView() : C3ListView()
{
	m_fn_vSetBox(C_cDisplayBitmapAndText, C_wListViewBTItemWidth, C_wListViewBTItemHeight);
	m_fn_vSetBox(C_cDisplayBitmap, C_wListViewBItemWidth, C_wListViewBItemHeight);
	m_fn_vSetBox(C_cDisplayText, C_wListViewTItemWidth, C_wListViewTItemHeight);
	//m_fn_vDisableMenuItem(TLVM_lOrder);
	m_oHatchBitmap.LoadBitmap(IDB_BITMAP_HATCHED);
	m_oHatchBrush.CreatePatternBrush(&m_oHatchBitmap);
	m_fn_vSetBitmapList(NULL);
	m_wSpecialImage = TSL_cItemNotFound;

}

//=============================================================================
//  Description : destructor
//=============================================================================
CPatternedListView::~CPatternedListView()
{
}

//=============================================================================
//  Description : Create view
//=============================================================================
int CPatternedListView::OnCreate( LPCREATESTRUCT _p_stCreateStruct )
{

	if (C3ListView::OnCreate( _p_stCreateStruct ) == -1)
		return -1;
	m_cDisplayType = C_cDisplayBitmapAndText;

	return 0;
}

//=============================================================================
//  Description : on draw item
//=============================================================================
void CPatternedListView::m_fn_vOverriddenDrawItem( short wItem, CDC *pDC, RECT *rect)
{
	BOOL							bSelected;
	//if the item was not loaded by engine, select a gray background
	CBrush *p_oOldBrush = NULL;
	//CBrush oGrayBrush(HS_BDIAGONAL, RGB(200, 100, 70));
	//CBrush oGrayBrush(CBitmap::FromHandle(m_hHatchBitmap))
	if ( !m_fn_lGetContent( wItem, m_cCurrentOrder ) ) //no value associated to the image: display with alternate background
		p_oOldBrush = pDC->SelectObject(&m_oHatchBrush);

	//draw the item normally, with a special text for items with this image (in text only-mode)
	m_fn_vDrawItem( wItem, pDC, rect, m_wSpecialImage);

	//restore the original background
	if ( p_oOldBrush )
		pDC->SelectObject(p_oOldBrush);

	// reinvert rectangle if item is selected
	bSelected = m_fn_bIsItemSelected(wItem, m_cCurrentOrder);
	if (bSelected)
		pDC->InvertRect( rect );

	if (bSelected)
		pDC->InvertRect( rect );
}

//=============================================================================
//  Description : redraw selected item
//		called by CMaterialDescDlg when visuel change
//=============================================================================
/*void CPatternedListView::m_fn_vRedrawSelectedItem(int iItem /*= -1* /)
{
	if ( iItem == TSL_cItemNotFound )
		iItem = m_fn_lGetSelectedItem(m_cCurrentOrder);

	RECT rect;
	m_fn_vGetCaseRect((short) iItem, &rect);
	rect.top -= GetScrollPosition().y;
	rect.bottom -= GetScrollPosition().y;
	rect.left -= GetScrollPosition().x;
	rect.right -= GetScrollPosition().x;

	InvalidateRect( &rect );
}*/
