// EIKSFORM.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

#if !defined(__EIKSFORM_H__)
#define __EIKSFORM_H__

#if !defined(__COECCNTX_H__)
#include <coeccntx.h>
#endif
#if !defined(__EIKFORM_H__)
#include <eikform.h>
#endif
#if !defined(__EIKSCRLB_H__)
#include <eikscrlb.h>
#endif


class CEikScrollableForm : public CEikForm
	{
public:
	IMPORT_C CEikScrollableForm();
	IMPORT_C virtual ~CEikScrollableForm();
	IMPORT_C void ConstructL(const CCoeControl& aParent);
	IMPORT_C TInt YPosToLine(TInt& aYPos) const;
	IMPORT_C TInt LineToYPos(TInt& aLine) const;
	IMPORT_C void ExposeLine(TInt aLine);
	IMPORT_C void SetDataPosition(TInt aPosition);
public://simple getter functions
	IMPORT_C TInt ControlHeight(TInt aLineIndex) const;
public: //from CCoeControl
	IMPORT_C virtual TSize MinimumSize();
protected:
	IMPORT_C virtual void ActivateL();
	IMPORT_C virtual void SizeChangedL();
private: // from CCoeControl
	IMPORT_C void Reserved_1();
	IMPORT_C void Reserved_2();
private: // from CEikForm
	IMPORT_C virtual void Reserved_3();
private:
	RWindow* iViewWin;
	};

class CEikScrollableFormContainer : public CEikBorderedControl, public MEikScrollBarObserver
	{
public:
	IMPORT_C CEikScrollableFormContainer();
	IMPORT_C virtual ~CEikScrollableFormContainer();
	IMPORT_C void CreateScrollBarL();
	IMPORT_C void UpdateScrollBarL();
public://from CCoeControl
	IMPORT_C virtual TSize MinimumSize();
protected:// from MEikScrollBarIObserver
	IMPORT_C virtual void HandleScrollEventL(CEikScrollBar* aScrollBar,TEikScrollEvent aEventType);
protected://from CCoeControl
	IMPORT_C virtual void SizeChangedL();
	IMPORT_C virtual TInt CountComponentControls() const;
	IMPORT_C virtual CCoeControl* ComponentControl(TInt aIndex) const;
private:
	IMPORT_C virtual void Reserved_1();
	IMPORT_C virtual void Reserved_2();
protected:
	CEikScrollableForm* iScrollableForm;
	CEikScrollBar* iScrollBar;
	};



#endif
