// EIKDCLBI.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

#if !defined(__EIKDCLBI_H__)
#define __EIKDCLBI_H__

#if !defined(__EIKLBI_H__)
#include <eiklbi.h>
#endif

class CDirContentsListBoxModel;
class CFont;
class CFbsBitmap;
class CColumnListBoxData;

class CDirContentsListItemDrawer : public CListItemDrawer
	{
public:
	class TColumnWidths
		{
	public:
		IMPORT_C TColumnWidths();
	public:
		TInt iBitmap;
		TInt iName;
		TInt iSize;
		TInt iDate;
		};
public:
	enum TShowFlags
		{
		EShowSize	=0x01,
		EShowDate	=0x02
		};
public:
	IMPORT_C CDirContentsListItemDrawer(const CDirContentsListBoxModel* aModel);
	IMPORT_C ~CDirContentsListItemDrawer();
	IMPORT_C void ConstructL(CArrayPtr<CFbsBitmap>* aBitmaps,const CFont* aFont,const CFont* aDetailsFont);
	IMPORT_C void SetBitmapArray(CArrayPtr<CFbsBitmap>* aBitmaps);
	IMPORT_C void CalcColumnWidths();
	IMPORT_C void SetColumnWidths(TColumnWidths& aWidths);
	IMPORT_C CDirContentsListBoxModel* DclModel() const;
	IMPORT_C void SetDclItemDrawerFlags(TInt aFlags);
	IMPORT_C void ClearDclItemDrawerFlags(TInt aFlags);
	IMPORT_C CDirContentsListItemDrawer::TColumnWidths ColumnWidths() const;
public: // from CListItemDrawer
	IMPORT_C void DrawActualItem(TInt aItemIndex,const TRect& aActualItemRect,TBool aItemIsCurrent,TBool aViewIsEmphasized,TBool aViewIsDimmed) const;
	IMPORT_C TInt ItemWidthInPixels(TInt aItemIndex) const;
	IMPORT_C TSize MinimumCellSize() const;
	IMPORT_C void SetViewRect(const TRect& aRect);
	IMPORT_C void SetMarkColumnWidth(TInt aWidthInPixels);
	IMPORT_C void SetMarkGutter(TInt aGapInPixels);
private:
	void GetItemText(TDes& aText,TInt aItemIndex) const;
	CFbsBitmap* ItemBitmap(TInt aItemIndex) const;
private:
	const CDirContentsListBoxModel* iModel;
	TUint iFlags;
	TBuf<2> iSeparators;
	CColumnListBoxData* iColumnData;
	};

#endif
