// EIKHLBI.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

#if !defined(__EIKHLBI_H__)
#define __EIKHLBI_H__

#if !defined(__EIKLBI_H__)
#include <eiklbi.h>
#endif

class CHierarchicalListBoxModel;
class CFont;
class CFbsBitmap;

class CHierarchicalListItemDrawer : public CListItemDrawer
	{
public:
	IMPORT_C ~CHierarchicalListItemDrawer();
	IMPORT_C void SetBitmapArray(CArrayPtr<CFbsBitmap>* aBitmaps);
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;
protected:
	IMPORT_C CHierarchicalListItemDrawer(CHierarchicalListBoxModel* aModel,const CFont* aFont,
											CArrayPtr<CFbsBitmap>* aBitmaps);
//
	IMPORT_C virtual void DrawItemBitmap(TInt aItemIndex,TRect& aActualItemRect) const;
	IMPORT_C virtual void DrawItemText(TInt aItemIndex, const TRect& aItemTextRect) const;
	virtual CFbsBitmap* ItemBitmap(TInt aItemIndex) const=0;
	IMPORT_C virtual TSize ItemBitmapSize() const;
	IMPORT_C CHierarchicalListBoxModel* HlModel() const;
protected:
	CHierarchicalListBoxModel* iModel;
	const CFont* iFont;
	CArrayPtr<CFbsBitmap>* iBitmaps;
	};

#endif
