// EIKCLB.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//
#if !defined(__EIKCLB_H__)
#define __EIKCLB_H__

#include <eiklbi.h>
#include <eiklbv.h>
#include <eiktxlbm.h>
#include <eiktxlbx.h>

class CColumnListBoxData;

class CColumnListBoxModel : public CTextListBoxModel
	{
public:
	IMPORT_C CColumnListBoxModel();
	IMPORT_C ~CColumnListBoxModel();
	IMPORT_C void ConstructL(MDesCArray* aItemTextArray=NULL,TListBoxModelItemArrayOwnership aOwnershipType=ELbmOwnsItemArray);
public:
	IMPORT_C CColumnListBoxData* ColumnData() const;
private:
	CColumnListBoxData* iColumnData;
	};

class CColumnListBoxItemDrawer : public CTextListItemDrawer
	{
public:
	IMPORT_C CColumnListBoxItemDrawer(MTextListBoxModel* aTextListBoxModel,const CFont* aFont);
public: // from CTextListItemDrawer
	IMPORT_C void DrawItemText(TInt aItemIndex,const TRect& aItemTextRect,TBool aItemIsCurrent,TBool aViewIsEmphasized) const;
public: // from CListItemDrawer
	IMPORT_C TSize MinimumCellSize() const;

	// only availiable in platform-004 and above
	IMPORT_C TInt ItemWidthInPixels(TInt aItemIndex) const;	
private:
	CColumnListBoxData* ColumnData() const;
	void DrawCurrentItemRect(const TRect& aRect) const;
	};

class CEikColumnListBox : public CEikTextListBox
	{
public:
	IMPORT_C CEikColumnListBox();
    IMPORT_C void ConstructFromResourceL(TResourceReader& aReader);
	IMPORT_C void ConstructL(CCoeControl* aParent,TInt aFlags=0,const CFont* aFont=NULL);
public:
	IMPORT_C CColumnListBoxModel* Model() const;
	};

#endif

