// EIKMSG.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

#if !defined(__EIKMSG_H__)
#define __EIKMSG_H__

#if !defined(__CLOCK_H__)
#include <clock.h>
#endif

#if !defined(__COEALIGN_H__)
#include <coealign.h>
#endif

class CCoeControl;
class CEikonEnv;
class RWindowGroup;

class CEikMsgWin : public CBase
	{
protected:
	CEikMsgWin(CEikonEnv& aEikonEnv);
public:
	IMPORT_C void ConstructL(RWindowGroup& aWindowGroup);
	IMPORT_C virtual ~CEikMsgWin();
	IMPORT_C void StartDisplay(const TDesC& aText, TCoeAlignment aCorner);
	IMPORT_C void CancelDisplay();
private:
	virtual void DoStartDisplay(const TDesC& aText)=0;
protected:
	CEikonEnv& iEikonEnv_; // the underscore is to prevent a name clash with the iEikonEnv #define
	CCoeControl* iDummy;
	RBlankWindow* iBlankWindow;
	RMessageWindow* iMessageWindow;
	};

const TInt KEikInfoMsgMaxLen=RMessageWindow::EMaxTextLength;
typedef TBuf<KEikInfoMsgMaxLen> TEikInfoMsgBuf;

class CEikInfoMsgWin : public CEikMsgWin
	{
public:
	IMPORT_C CEikInfoMsgWin(CEikonEnv& aEikonEnv);
private:
	virtual void DoStartDisplay(const TDesC& aText);
	};

//

const TInt KEikBusyMsgMaxLen=RMessageWindow::EMaxTextLength;
typedef TBuf<KEikBusyMsgMaxLen> TEikBusyMsgBuf;

class CEikBusyMsgWin : public CEikMsgWin
	{
public:
	IMPORT_C CEikBusyMsgWin(CEikonEnv& aEikonEnv);
	IMPORT_C void StartDisplaySpecifyingInitialDelay(const TDesC& aText, TCoeAlignment aCorner, TTimeIntervalMicroSeconds32 aInitialDelay);
private:
	virtual void DoStartDisplay(const TDesC& aText);
private:
	TTimeIntervalMicroSeconds32 iInitialDelay;
	};

#endif

