williamr@2: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __EIKMSG_H__ williamr@2: #define __EIKMSG_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: class CCoeControl; williamr@2: class CEikonEnv; williamr@2: class RWindowGroup; williamr@2: class CEikResourceChange; williamr@2: williamr@2: williamr@2: /** Base class providing functions to construct and display an information message. williamr@2: williamr@2: @publishedAll williamr@2: @released */ williamr@2: class CEikMsgWin : public CBase williamr@2: { williamr@2: protected: williamr@2: IMPORT_C CEikMsgWin(CEikonEnv& aEikonEnv); williamr@2: public: williamr@2: IMPORT_C void ConstructL(RWindowGroup& aWindowGroup); williamr@2: IMPORT_C virtual ~CEikMsgWin(); williamr@2: IMPORT_C void StartDisplay(const TDesC& aText, TGulAlignment aCorner); williamr@2: IMPORT_C void CancelDisplay(); williamr@2: private: williamr@2: IMPORT_C virtual void CEikMsgWin_Reserved1(); williamr@2: IMPORT_C virtual void CEikMsgWin_Reserved2(); williamr@2: protected: williamr@2: TDes& PrepareDisplay(TDes& aText, TGulAlignment aCorner); williamr@2: private: williamr@2: virtual void DoStartDisplay(const TDesC& aText)=0; williamr@2: protected: williamr@2: /** A CEikonEnv*, which all applications have. This is required for construction williamr@2: of a CEikMsgWin as it provides access to services which the message window williamr@2: needs, the window server session for example. */ williamr@2: CEikonEnv& iEikonEnv_; // the underscore is to prevent a name clash with the iEikonEnv #define williamr@2: /** An empty control required for construction of a blank window. This defines williamr@2: a handle back to the client side object, which is only required if you need williamr@2: to later initiate client side drawing. */ williamr@2: CCoeControl* iDummy; williamr@2: /** The window in which the message will be drawn. */ williamr@2: RBlankWindow* iBlankWindow; williamr@2: /** An RAnim derived class, which is responsible for interacting with server side williamr@2: classes to provide the message window's animation on the screen. It is constructed williamr@2: by passing in the RWindowBase which it will use to draw its contents to, and williamr@2: also a handle to an animation DLL, which provides the animation functionality. */ williamr@2: RMessageWindow* iMessageWindow; williamr@2: private: williamr@2: CEikResourceChange* iResourceChange; williamr@2: TInt iCEikMsgWin_Spare1; williamr@2: }; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KEikInfoMsgMaxLen=RMessageWindow::EMaxTextLength; williamr@2: williamr@2: /** Specifies the maximum length of the message buffer. williamr@2: williamr@2: @publishedAll williamr@2: @released */ williamr@2: typedef TBuf TEikInfoMsgBuf; williamr@2: williamr@2: class CEikInfoMsgWin : public CEikMsgWin, public MEikInfoMsgWin williamr@2: /** Enables construction of an information message window. williamr@2: williamr@2: @publishedAll williamr@2: @released */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C void ConstructL(RWindowGroup& aWindowGroup, TInt aParam = 0); williamr@2: IMPORT_C CEikInfoMsgWin(CEikonEnv& aEikonEnv); williamr@2: public: //from MEikInfoMsgWin williamr@2: IMPORT_C void StartDisplaySpecifyingDuration(const TDesC& aText, TGulAlignment aCorner, TTimeIntervalMicroSeconds32 aDuration); williamr@2: IMPORT_C void StartDisplay(const TDesC& aText, TGulAlignment aCorner); williamr@2: IMPORT_C void CancelDisplay(); williamr@2: IMPORT_C void Release(); williamr@2: private: williamr@2: virtual void DoStartDisplay(const TDesC& aText); williamr@2: IMPORT_C virtual void CEikInfoMsgWin_Reserved1(); williamr@2: IMPORT_C virtual void CEikInfoMsgWin_Reserved2(); williamr@2: private: // From CEikMsgWin. do not override! williamr@2: IMPORT_C void CEikMsgWin_Reserved1(); williamr@2: IMPORT_C void CEikMsgWin_Reserved2(); williamr@2: private: williamr@2: TInt iCEikInfoMsgWin_Spare1; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KEikBusyMsgMaxLen=RMessageWindow::EMaxTextLength; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: typedef TBuf TEikBusyMsgBuf; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: class CEikBusyMsgWin : public CEikMsgWin, public MEikBusyMsgWin williamr@2: { williamr@2: public: williamr@2: IMPORT_C void ConstructL(RWindowGroup& aWindowGroup); williamr@2: IMPORT_C CEikBusyMsgWin(CEikonEnv& aEikonEnv); williamr@2: public: //from MEikBusyMsgWin williamr@2: IMPORT_C void StartDisplaySpecifyingInitialDelay(const TDesC& aText, TGulAlignment aCorner, TTimeIntervalMicroSeconds32 aInitialDelay); williamr@2: IMPORT_C void StartDisplay(const TDesC& aText, TGulAlignment aCorner); williamr@2: IMPORT_C void Release(); williamr@2: private: williamr@2: IMPORT_C virtual void CEikBusyMsgWin_Reserved1(); williamr@2: IMPORT_C virtual void CEikBusyMsgWin_Reserved2(); williamr@2: private: // From CEikMsgWin. do not override! williamr@2: IMPORT_C void CEikMsgWin_Reserved1(); williamr@2: IMPORT_C void CEikMsgWin_Reserved2(); williamr@2: private: williamr@2: virtual void DoStartDisplay(const TDesC& aText); williamr@2: private: williamr@2: TTimeIntervalMicroSeconds32 iInitialDelay; williamr@2: TInt iCEikBusyMsgWin_Spare1; williamr@2: }; williamr@2: williamr@2: #endif // __EIKMSG_H__