// EIKBTPAN.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

#if !defined(__EIKBTPAN_H__)
#define __EIKBTPAN_H__

#if !defined(__COECNTRL_H__)
#include <coecntrl.h>
#endif

class CEikCommandButtonBase;
class CEikLabeledButton;

class CEikButtonPanel : public CCoeControl
	{
public: // new functions
	IMPORT_C CEikButtonPanel();
	IMPORT_C ~CEikButtonPanel();
	IMPORT_C void ConstructL();
	IMPORT_C void AddButtonL(CEikLabeledButton* aButton,TInt aId);
	IMPORT_C void SetHorizontal();
	IMPORT_C TInt ButtonId(CCoeControl* aControl) const;
	IMPORT_C CEikCommandButtonBase* ButtonById(TInt aButtonId) const;
	IMPORT_C CEikLabeledButton* LabeledButtonById(TInt aButtonId) const;
	IMPORT_C void MakeButtonVisible(TInt aButtonId,TBool aVisible);
	IMPORT_C CEikCommandButtonBase* ButtonForKey(TInt aChar,TInt& aButtonId) const;
	IMPORT_C void ResetMinimumSize();
	IMPORT_C void SetMinButtonWidth(TInt aWidth);
public:	// from CCoeControl
	IMPORT_C void ConstructFromResourceL(TResourceReader& aReader);
	IMPORT_C TSize MinimumSize();
private: // from CCoeControl
    IMPORT_C TInt CountComponentControls() const;
    IMPORT_C CCoeControl* ComponentControl(TInt aIndex) const;
    IMPORT_C void SizeChangedL();
	IMPORT_C void Reserved_1();
	IMPORT_C void Reserved_2();
private:
	struct SEikPanelButton
		{
		CEikLabeledButton*	iButton;
		TInt				iId;
		};
private:
	CArrayFix<SEikPanelButton>* iButtonArray;
	TBool iHorizontal;
	TSize iMinSize;
	TInt iButWidth;
	TInt iMinButWidth;
	};

#endif
