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 __EIKENV_H__ williamr@2: #define __EIKENV_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: class CEikProcess; williamr@2: class MEikInfoMsgWin; williamr@2: class MEikBusyMsgWin; williamr@2: class CEikAppUi; williamr@2: class CEikHotKeyTable; williamr@2: class CCoeControl; williamr@2: class CParaFormatLayer; williamr@2: class CCharFormatLayer; williamr@2: class CCoeBrushAndPenContext; williamr@2: class CEikCommandButton; williamr@2: class CPrintSetup; williamr@2: class CDictionaryStore; williamr@2: class CApaWindowGroupName; williamr@2: class CEikErrorIdler; williamr@2: class CEikApplication; williamr@2: class MEikInfoDialog; williamr@2: class MEikAlertWin; williamr@2: class CEikDialog; williamr@2: class MEikDebugKeys; williamr@2: class CEikLibrary; williamr@2: class MEikAppUiFactory; williamr@2: class MEikIrFactory; williamr@2: class CGulIcon; williamr@2: class CApaMaskedBitmap; williamr@2: class CEikLogicalBorderProxy; williamr@2: class CEikLafEnv; williamr@2: class TLogicalFont; williamr@2: class CEikPictureFactory; williamr@2: class CEikEnvExtra; williamr@2: class TApaApplicationFactory; williamr@2: class CEikAppServer; williamr@2: class CLafSystemFont; williamr@2: class RApaLsSession; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: typedef void (*TRequestDialogFunc)(); williamr@2: williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: const TUid KUikonLibraryUid = {KUidUikonLibraryValue}; williamr@2: williamr@2: /** williamr@2: Creates the CEikLibrary interface object by calling the first ordinal function which is mapped to NewL method. williamr@2: williamr@2: The function leaves with KErrBadLibraryEntryPoint if the ordinal 1 function williamr@2: cannot be found. williamr@2: williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: typedef CEikLibrary* (*EikLibraryEntryPoint)(); williamr@2: williamr@2: williamr@2: /** An environment for creating controls and utility functions for manipulating williamr@2: them. williamr@2: williamr@2: Every GUI application is provided with an instance of CEikonEnv williamr@2: by the framework, which can be accessed through either CEikonEnv::Static() williamr@2: or the iEikonEnv macro of CEikApplication. williamr@2: williamr@2: @publishedAll williamr@2: @released */ williamr@2: class CEikonEnv : public CCoeEnv williamr@2: { williamr@2: public: williamr@2: enum TErrorValidity williamr@2: { EErrorNumValid, EErrorNumInvalid }; williamr@2: public: williamr@2: // Properties williamr@2: IMPORT_C static TVersion Version(); williamr@2: inline static CEikonEnv* Static(); williamr@2: // Construction and destruction williamr@2: IMPORT_C ~CEikonEnv(); williamr@2: IMPORT_C CEikonEnv(); williamr@2: IMPORT_C void ConstructL(); williamr@2: IMPORT_C void ConstructL(TBool aInitialFocusState); williamr@2: IMPORT_C void ConstructL(TBool aInitialFocusState, TInt aWindowGroupID); williamr@2: IMPORT_C void ConstructAppFromCommandLineL(const TApaApplicationFactory& aApplicationFactory, const CApaCommandLine& aCommandLine); williamr@2: IMPORT_C void ControlStackReadyL(); williamr@2: IMPORT_C void DestroyEnvironment(); williamr@2: // williamr@2: inline CEikAppUi* EikAppUi() const; williamr@2: inline CEikProcess* Process() const; williamr@2: // Legacy font support (see new TCoeFont and CCoeControl::ScreenFont()) williamr@2: IMPORT_C const CFont* AnnotationFont() const; williamr@2: IMPORT_C const CFont* TitleFont() const; williamr@2: IMPORT_C const CFont* LegendFont() const; williamr@2: IMPORT_C const CFont* SymbolFont() const; williamr@2: IMPORT_C const CFont* DenseFont() const; williamr@2: IMPORT_C const CFont* Font(const TLogicalFont& aLogicalFont) const; williamr@2: IMPORT_C void UpdateSystemFontsL(); williamr@2: // System bitmaps williamr@2: IMPORT_C const CFbsBitmap* TexturedBitmap() const; // deprecated williamr@2: IMPORT_C const CFbsBitmap* GrayBitmap() const; // deprecated williamr@2: IMPORT_C const CFbsBitmap* OptionBitmap() const; // deprecated williamr@2: IMPORT_C const CFbsBitmap* HighlightedOptionBitmap() const; williamr@2: IMPORT_C const CFbsBitmap* OptionMaskBitmap() const; // deprecated williamr@2: IMPORT_C const CFbsBitmap* Bitmap(TUid aUidBmp) const; williamr@2: public: williamr@2: IMPORT_C TBool ConfirmLossOfAllChangesL() const; williamr@2: williamr@2: IMPORT_C MPictureFactory* PictureFactory() const; williamr@2: IMPORT_C MEikPictureFactory* ExtendedPictureFactory(TUid aPictureType) const; williamr@2: IMPORT_C void AddPictureFactoryL(MEikPictureFactory& aFactory); williamr@2: IMPORT_C void RemovePictureFactory(TUid aFactoryId); williamr@2: // Alert dialogs williamr@2: IMPORT_C void AlertWin(const TDesC& aMsg); williamr@2: IMPORT_C void AlertWin(const TDesC& aMsg1, const TDesC& aMsg2); williamr@2: inline const MEikAlertWin* Alert() const; williamr@2: IMPORT_C void SetAlertWin(MEikAlertWin* aAlertWin); williamr@2: // Error handling williamr@2: IMPORT_C void LeaveWithInfoMsg(TInt aResourceId,...); williamr@2: IMPORT_C void LeaveWithErrorContext(TInt aError, const TDesC& aContextText); // deprecated williamr@2: IMPORT_C void GetErrorText(TDes& aDes,TInt aError) const; williamr@2: IMPORT_C TErrorValidity GetErrorText(TDes& aErrorText, TInt aError, TUid aAppUid) const; williamr@2: IMPORT_C TErrorValidity GetErrorTextAndTitle(TDes& aErrorText, TInt aError, TDes& aTitleText) const; williamr@2: IMPORT_C void ResolveError(TInt aError, TUid aAppUid = KNullUid) const; williamr@2: IMPORT_C void NotifyIdleErrorWhileRedrawing(TInt aError); williamr@2: IMPORT_C void NotifyIdleError(TInt aError, TInt aContextResourceId); williamr@2: IMPORT_C void HandleErrorWithContext(TInt aError,TInt aContextResourceId); williamr@2: // Info prints williamr@2: IMPORT_C void InfoMsg(const TDesC& aDes); williamr@2: IMPORT_C void InfoMsgWithAlignment(TGulAlignment aCorner,const TDesC& aDes); williamr@2: IMPORT_C void InfoMsg(TInt aResourceId, ...); williamr@2: IMPORT_C void InfoMsg(TInt aResourceId, VA_LIST aList); williamr@2: IMPORT_C void InfoMsgWithAlignment(TGulAlignment aCorner, TInt aResourceId,...); williamr@2: IMPORT_C void InfoMsgWithAlignment(TGulAlignment aCorner, TInt aResourceId, VA_LIST aList); williamr@2: IMPORT_C void InfoMsgWithDuration(const TDesC& aDes, TTimeIntervalMicroSeconds32 aDuration); williamr@2: IMPORT_C void InfoMsgWithDuration(TInt aResourceId, TTimeIntervalMicroSeconds32 aDuration, ...); williamr@2: IMPORT_C void InfoMsgWithDuration(TInt aResourceId, TTimeIntervalMicroSeconds32 aDuration, VA_LIST aList); williamr@2: IMPORT_C void InfoMsgWithAlignmentAndDuration(TGulAlignment aCorner, const TDesC& aDes, TTimeIntervalMicroSeconds32 aDuration); williamr@2: IMPORT_C void InfoMsgWithAlignmentAndDuration(TGulAlignment aCorner, TInt aResourceId, TTimeIntervalMicroSeconds32 aDuration, ...); williamr@2: IMPORT_C void InfoMsgWithAlignmentAndDuration(TGulAlignment aCorner, TInt aResourceId, TTimeIntervalMicroSeconds32 aDuration, VA_LIST aList); williamr@2: IMPORT_C void InfoMsgCancel(); williamr@2: IMPORT_C void VerboseInfoMsg(const TDesC& aDes); williamr@2: IMPORT_C void SetVerboseInfoReporting(TBool aVerbose); // deprecated williamr@2: // Busy messages williamr@2: IMPORT_C void BusyMsgL(const TDesC& aDes); williamr@2: IMPORT_C void BusyMsgL(const TDesC& aDes, TGulAlignment aCorner); williamr@2: IMPORT_C void BusyMsgL(TInt aResourceId); williamr@2: IMPORT_C void BusyMsgL(const TDesC& aDes, TTimeIntervalMicroSeconds32 aInitialDelay); williamr@2: IMPORT_C void BusyMsgL(const TDesC& aDes, TGulAlignment aCorner, TTimeIntervalMicroSeconds32 aInitialDelay); williamr@2: IMPORT_C void BusyMsgL(TInt aResourceId, TTimeIntervalMicroSeconds32 aInitialDelay); williamr@2: IMPORT_C void BusyMsgCancel(); williamr@2: // Query dialogs williamr@2: IMPORT_C static TBool QueryWinL(const TDesC& aFirstLine, const TDesC& aSecondLine); williamr@2: IMPORT_C TBool QueryWinL(TInt aFirstLineId, TInt aSecondLineId = 0) const; williamr@2: IMPORT_C void SetQueryDialog(MEikInfoDialog* aQueryDialog); williamr@2: IMPORT_C void SetRequestQueryDialogFunc(TRequestDialogFunc aQueryDialogFunc); williamr@2: // Info dialogs williamr@2: IMPORT_C static void InfoWinL(const TDesC& aFirstLine, const TDesC& aSecondLine); williamr@2: IMPORT_C void InfoWinL(TInt aFirstLineId, TInt aSecondLineId = 0) const; williamr@2: IMPORT_C void SetInfoDialog(MEikInfoDialog* aInfoDialog); williamr@2: IMPORT_C void SetRequestInfoDialogFunc(TRequestDialogFunc aInfoDialogFunc); williamr@2: IMPORT_C void AllocInfoMsg(); williamr@2: IMPORT_C void WservAllocInfoMsg(); williamr@2: IMPORT_C void FservAllocInfoMsg(); williamr@2: // Sound notificatons williamr@2: IMPORT_C static void Beep(); // deprecated williamr@2: // Bitmap utilities williamr@2: IMPORT_C CWsBitmap* CreateBitmapL(const TDesC& aFileName, TInt aId); williamr@2: IMPORT_C CWsBitmap* CreateBitmapL(const TDesC& aFileName, TInt aId, TBool aShowDlgIfErr); williamr@2: IMPORT_C CGulIcon* CreateIconL(const TDesC& aFileName, TInt aBitmapId, TInt aMaskId = KErrNotFound); williamr@2: IMPORT_C static CGulIcon* CreateIconFromMaskedBitmapL(const CApaMaskedBitmap& aApaMaskedBitmap); williamr@2: // Debugging williamr@2: IMPORT_C void SetDebugKeys(MEikDebugKeys* aDebugKeys); williamr@2: // Menu utilities williamr@2: IMPORT_C void LaunchPopupMenuL(TInt aResourceId, const TPoint& aTargetPos, TPopupTargetPosType aTargetType = EPopupTargetTopLeft, const CEikHotKeyTable* aHotKeyTable = NULL); williamr@2: // Graphical effects williamr@2: IMPORT_C static void AddWindowShadow(CCoeControl* aWinArea); williamr@2: IMPORT_C RAnimDll& ClockDllL(); williamr@2: // Text formatting parameters williamr@2: IMPORT_C CParaFormatLayer* SystemSingleLineParaFormatLayerL(); williamr@2: IMPORT_C CParaFormatLayer* SystemParaFormatLayerL(); williamr@2: IMPORT_C CCharFormatLayer* SystemCharFormatLayerL(); williamr@2: IMPORT_C static CParaFormatLayer* NewDefaultSingleLineParaFormatLayerL(); williamr@2: IMPORT_C static CParaFormatLayer* NewDefaultParaFormatLayerL(); williamr@2: IMPORT_C static CCharFormatLayer* NewDefaultCharFormatLayerL(); williamr@2: // Control stack utilities williamr@2: IMPORT_C void AddDialogLikeControlToStackL(CCoeControl* aControl); williamr@2: IMPORT_C void AddAlertDialogLikeControlToStackL(CCoeControl* aControl); williamr@2: IMPORT_C void RemoveFromStack(CCoeControl* aControl); williamr@2: IMPORT_C void AddSleepingDialogToStackL(CCoeControl* aControl); williamr@2: IMPORT_C void AddSleepingAlertDialogToStackL(CCoeControl* aControl); williamr@2: IMPORT_C void RouseSleepingDialog(CCoeControl* aControl, TBool aRoused); williamr@2: // Text cursors williamr@2: IMPORT_C void DrawCursor(const CCoeControl* aControl, const TPoint& aPosition, TInt aWidth); williamr@2: IMPORT_C void DrawCursor(const CCoeControl* aControl, const TPoint& aPosition, TInt aWidth, TInt aAscent, TInt aHeight); williamr@2: IMPORT_C void HideCursor(const CCoeControl* aControl); williamr@2: // Virtual pointer device cursor williamr@2: IMPORT_C TEikVirtualCursor& VirtualCursor(); williamr@2: // Control of the application's ordinal position williamr@2: IMPORT_C void BringForwards(TBool aForwards, TInt aPriority = ECoeWinPriorityAlwaysAtFront); williamr@2: IMPORT_C void SetAutoForwarding(TBool aAutoBringToForeground); williamr@2: // williamr@2: IMPORT_C TPtrC KeyPressLabel(TInt aIndex) const; // deprecated williamr@2: // Printing williamr@2: IMPORT_C CPrintSetup* NewDefaultPrintSetupL(); williamr@2: IMPORT_C static void GetPrinterNamesL(CPrinterModelList* aModelNameList, CDesCArray& aPrinterNameList); williamr@2: // Application properties williamr@2: IMPORT_C void UpdateTaskNameL(); williamr@2: IMPORT_C void SetBusy(TBool aBusy); williamr@2: IMPORT_C TBool IsBusy() const; williamr@2: IMPORT_C void SetSystem(TBool aSystem); williamr@2: IMPORT_C TBool IsSystem() const; williamr@2: IMPORT_C void SetDocNameIsAFile(TBool aDocNameIsAFile); williamr@2: IMPORT_C TBool DocNameIsAFile() const; williamr@2: IMPORT_C void SetRespondsToShutdownEvent(TBool aRespondsToShutdownEvent); williamr@2: IMPORT_C TBool RespondsToShutdownEvent() const; williamr@2: IMPORT_C void SetRespondsToSwitchFilesEvent(TBool aRespondsToSwitchFilesEvent); williamr@2: IMPORT_C TBool RespondsToSwitchFilesEvent() const; williamr@2: // Task list dialog williamr@2: IMPORT_C void DisplayTaskList(); williamr@2: IMPORT_C void DismissTaskList(); williamr@2: public: // Internal (for Symbian and partners only) williamr@2: // Dialog factories williamr@2: inline MEikCDlgDialogFactory* CDlgDialogFactory() const; williamr@2: inline MEikPrintDialogFactory* PrintDialogFactory() const; williamr@2: inline MEikFileDialogFactory* FileDialogFactory() const; williamr@2: inline MEikIrFactory* IrFactory() const; williamr@2: inline void SetCDlgDialogFactory(MEikCDlgDialogFactory* aDialogFactory); williamr@2: inline void SetPrintDialogFactory(MEikPrintDialogFactory* aDialogFactory); williamr@2: inline void SetFileDialogFactory(MEikFileDialogFactory* aDialogFactory); williamr@2: inline void SetIrFactory(MEikIrFactory* aIrFactory); williamr@2: CArrayFix* ControlFactoryFuncArray() const; williamr@2: // Color scheme williamr@2: inline CColorList& ColorList() const; williamr@2: inline TRgb Color(TLogicalColor aLogicalColor) const; williamr@2: inline void SetColor(TLogicalColor aLogicalColor, TRgb aColor); williamr@2: IMPORT_C TRgb ControlColor(TLogicalColor aLogicalColor,const CCoeControl& aControl) const; williamr@2: inline CColorArray& CustomColorArray() const; williamr@2: IMPORT_C CColorList* CreateSystemColorListL(); williamr@2: IMPORT_C CColorList* CreateSystemColorListL(const CColorList& aColorList); williamr@2: IMPORT_C void UpdateSystemColorListL(const CColorList& aColorList); williamr@2: IMPORT_C CColorList* PopulateColorArrayL(); williamr@2: // Library loading and unloading williamr@2: IMPORT_C TInt AddLibraryL(TCreateByTypeFunction aControlFactory, TFileName* aResourceFile); williamr@2: inline TInt AddLibraryL(TCreateByTypeFunction aControlFactory); williamr@2: inline TInt AddLibraryL(TFileName* aResourceFile); williamr@2: IMPORT_C void RemoveLibrary(TCreateByTypeFunction aControlFactory, TInt aResourceFileOffset); williamr@2: inline void RemoveLibrary(TCreateByTypeFunction aControlFactory); williamr@2: inline void RemoveLibrary(TInt aResourceFileOffset); williamr@2: // Legacy UI utilities williamr@2: inline TChar NudgeCharMinus() const; williamr@2: inline TChar NudgeCharPlus() const; williamr@2: // Status pane williamr@2: inline TInt StatusPaneCoreResId() const; williamr@2: inline void SetStatusPaneCoreResId(TInt aStatusPaneCoreResId); williamr@2: // Auto menus williamr@2: IMPORT_C void AddAutoMenuTitleL(CEikAutoMenuTitle* aTitle); williamr@2: inline CEikAutoMenuTitleArray* AutoMenuTitleArray() const; williamr@2: // Display mode williamr@2: IMPORT_C TDisplayMode DefaultDisplayMode() const; williamr@2: public: // internal williamr@2: IMPORT_C MLafEnv& LafEnv() const; // deprecated williamr@2: inline TInt EditableControlStandardHeight() const; williamr@2: IMPORT_C void SendEventToEikonServer(TInt aEvent,const TAny* aPtr,TInt aLength); williamr@2: // Object factories williamr@2: IMPORT_C MEikAppUiFactory* AppUiFactory() const; williamr@2: IMPORT_C MEikAppUiFactory* AppUiFactory(const CEikAppUi& aAppUi) const; williamr@2: IMPORT_C void SetAppUiFactoryL(MEikAppUiFactory* aAppUiFactory); williamr@2: IMPORT_C void AddAppUiFactoryL(MEikAppUiFactory* aAppUiFactory); williamr@2: IMPORT_C void RemoveAppUiFactory(); williamr@2: public: // Internal. Do not use! williamr@2: IMPORT_C void SetExtension(CBase* aExtension); // deprecated williamr@2: inline CBase* Extension() const; // deprecated williamr@2: IMPORT_C void HandleError(TInt aError); williamr@2: IMPORT_C void WriteInternalStateOfStackedControlsL(); williamr@2: IMPORT_C void DoGetErrorText(TDes& aDes,TInt aError) const; williamr@2: IMPORT_C TErrorValidity DoGetErrorTextAndTitle(TDes& aErrorText, TInt aError, TInt& aTextId, TUint& aFlags, TDes& aTitleText, TBool aIsMemoryAllocatedByErrResolver = EFalse) const; williamr@2: void InitSystemBitmapsL(); williamr@2: void UpdateColorListL(); williamr@2: void PostAppUiInitializeL(); williamr@2: TLanguage ApplicationLanguage() const; williamr@2: void PostAppUiDestroy(); williamr@2: private: williamr@2: IMPORT_C virtual void CEikonEnv_Reserved_1(); williamr@2: IMPORT_C virtual void CEikonEnv_Reserved_2(); williamr@2: IMPORT_C virtual void CEikonEnv_Reserved_3(); williamr@2: IMPORT_C virtual void CEikonEnv_Reserved_4(); williamr@2: IMPORT_C virtual void CEikonEnv_Reserved_5(); williamr@2: private: // framework functions williamr@2: IMPORT_C void DestroyScreen(); williamr@2: IMPORT_C void InitSystemFontsL(); williamr@2: IMPORT_C TInt ResourceFileVersionNumber() const; williamr@2: public: williamr@2: IMPORT_C MEikInfoDialog* QueryDialog() const; williamr@2: IMPORT_C MEikInfoDialog* InfoDialog() const; williamr@2: public: williamr@2: IMPORT_C CEikAppServer* AppServer() const; williamr@2: IMPORT_C TBool StartedAsServerApp() const; williamr@2: protected: williamr@2: friend class CEikServAppUi; williamr@2: private: // Internal williamr@2: void InitSystemResourceFileL(); williamr@2: void InitPrivateResourceFileL(); williamr@2: void InitInfoMsgL(); williamr@2: void PrepareBusyMsgL(); williamr@2: void InitAlertWinL(); williamr@2: void InitDebugKeysL(); williamr@2: TErrorHandlerResponse PrepareToHandleError(TInt aError); williamr@2: void DoHandleError(TErrorHandlerResponse aType); williamr@2: static TInt IdleErrorCallBack(TAny* aThis); williamr@2: void InitColorSchemeL(); williamr@2: void LoadParserListL(); williamr@2: void LoadLibrariesL(); williamr@2: void CloseLibraries(); williamr@2: TRequestDialogFunc RequestQueryDialogFunc(); williamr@2: TRequestDialogFunc RequestInfoDialogFunc(); williamr@2: void SetAppReady(); williamr@2: public: williamr@2: TBool IsEiksrvThread() const; williamr@2: private: williamr@2: TBool InfoWinOrQueryWinL(TInt aFirstLineId,TInt aSecondLineId,TBool aIsQueryWin=EFalse) const; williamr@2: void SetCommandLineDebugMemFailL(const CApaCommandLine& aCommandLine); williamr@2: void StoreAppLanguageL(const RApaLsSession& aLsSession); williamr@2: void ErrorContextL(TInt aError,const TDesC& aContextText); williamr@2: private: williamr@2: IMPORT_C virtual void CEikonEnv_Reserved_6(); williamr@2: IMPORT_C virtual void CEikonEnv_Reserved_7(); williamr@2: IMPORT_C virtual void CEikonEnv_Reserved_8(); williamr@2: IMPORT_C virtual void CEikonEnv_Reserved_9(); williamr@2: IMPORT_C virtual void CEikonEnv_Reserved_10(); williamr@2: private: williamr@2: NONSHARABLE_CLASS(TEikAppUiFactory) williamr@2: { williamr@2: public: williamr@2: MEikAppUiFactory* iFactory; williamr@2: CEikAppUi* iAppUi; williamr@2: }; williamr@2: private: williamr@2: TBitFlags iEikonEnvFlags; williamr@2: TInt iForwardsCount; williamr@2: TInt iBusyCount; williamr@2: CEikProcess* iProcess; williamr@2: RAnimDll* iClockDll; williamr@2: CArrayPtr* iFontArray; williamr@2: MEikInfoMsgWin* iInfoMsgWin; williamr@2: MEikBusyMsgWin* iBusyMsgWin; williamr@2: MEikAlertWin* iAlertWin; williamr@2: TInt iSystemResourceFileOffset; williamr@2: HBufC8* iKeyPressLabels; williamr@2: CParaFormatLayer* iSingleLineParaFormatLayer; williamr@2: CParaFormatLayer* iParaFormatLayer; williamr@2: CCharFormatLayer* iCharFormatLayer; williamr@2: const CCoeControl* iCursorWindow; williamr@2: TInt iEditableControlStandardHeight; williamr@2: CApaWindowGroupName* iWgName; williamr@2: CEikErrorIdler* iErrorIdler; williamr@2: TInt iPrivateResourceFileOffset; williamr@2: CColorList* iColorList; williamr@2: CEikPictureFactory* iPictureFactory; williamr@2: TBuf<2> iNudgeChars; williamr@2: MEikInfoDialog* iQueryDialog; williamr@2: MEikInfoDialog* iInfoDialog; williamr@2: TRequestDialogFunc iQueryDialogFunc; williamr@2: TRequestDialogFunc iInfoDialogFunc; williamr@2: CArrayFix* iControlFactoryFuncArray; williamr@2: CArrayFix* iResourceFileOffsetArray; williamr@2: TBool iAlertWinInitialized; williamr@2: MEikDebugKeys* iDebugKeys; williamr@2: MEikCDlgDialogFactory* iCDlgDialogFactory; williamr@2: MEikPrintDialogFactory* iPrintDialogFactory; williamr@2: MEikFileDialogFactory* iFileDialogFactory; williamr@2: CArrayFix* iAppUiFactoryArray; williamr@2: MEikIrFactory* iIrFactory; williamr@2: CArrayPtr* iLibraries; williamr@2: TInt iEmbeddedAppLevel; williamr@2: TInt iAutoLoadedResourceFiles; williamr@2: TInt iAutoLoadedControlFactories; williamr@2: CBase* iExtension; williamr@2: TInt iStatusPaneCoreResId; williamr@2: CEikAutoMenuTitleArray* iAutoMenuTitleArray; williamr@2: TEikVirtualCursor iVirtualCursor; williamr@2: CEikLogicalBorderProxy* iLogicalBorderProxy; williamr@2: CEikLafEnv* iLafEnv; williamr@2: CArrayPtrFlat* iBitmapArray; williamr@2: CEikEnvExtra* iEikEnvExtra; // used to be TInt iSpare1; williamr@2: HBufC* iOOMErrorText; // used to be TInt iSpare2; williamr@2: TInt iSpare3; williamr@2: }; williamr@2: williamr@2: williamr@2: /** Interface for launching a dialog with a title and a message, for instance a williamr@2: query dialog. williamr@2: williamr@2: Dialogs implementing this interface can be passed to CEikonEnv::SetQueryDialog() williamr@2: or CEikonEnv::SetInfoDialog(). williamr@2: williamr@2: @publishedAll williamr@2: @released */ williamr@2: class MEikInfoDialog williamr@2: { williamr@2: public: williamr@2: /** Initialises and executes the dialog. williamr@2: williamr@2: @param aResource The ID of the DIALOG resource that identifies the dialog's williamr@2: type. For instance, a query dialog (with Yes/No buttons) or an info dialog williamr@2: (with a Continue button). williamr@2: @param aTitle The dialog's title. williamr@2: @param aMsg The message to display in the dialog. williamr@2: @return True if the Confirm button (or equivalent) was pressed, false if the williamr@2: dialog was cancelled. */ williamr@2: virtual TBool RunDlgLD(TInt aResource, const TDesC& aTitle, const TDesC& aMsg) = 0; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: class MEikAlertWin williamr@2: { williamr@2: public: williamr@2: virtual void ConstructL() = 0; williamr@2: virtual void RunAlert(const TDesC& aTitle, const TDesC& aMsg) = 0; williamr@2: virtual void Release() = 0; williamr@2: virtual CEikDialog* AsEikDialog() = 0; williamr@2: inline const CEikDialog* AsEikDialog() const; williamr@2: IMPORT_C virtual CCoeControl* AsCoeControl(); williamr@2: inline const CCoeControl* AsCoeControl() const; williamr@2: private: williamr@2: IMPORT_C virtual void MEikAlertWin_Reserved2(); williamr@2: IMPORT_C virtual void MEikAlertWin_Reserved3(); williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: class MEikDebugKeys williamr@2: { williamr@2: public: williamr@2: virtual void ConstructL() = 0; williamr@2: virtual void Release() = 0; williamr@2: private: williamr@2: IMPORT_C virtual void MEikDebugKeys_Reserved1(); williamr@2: IMPORT_C virtual void MEikDebugKeys_Reserved2(); williamr@2: IMPORT_C virtual void MEikDebugKeys_Reserved3(); williamr@2: }; williamr@2: williamr@2: williamr@2: IMPORT_C void InternalizeL(TEikPortFlag& aThing,RReadStream& aStream); williamr@2: inline RWriteStream& operator<<(RWriteStream& aStream,const TEikPortFlag& aThing) williamr@2: {aStream.WriteUint8L(aThing);return aStream;} williamr@2: inline RReadStream& operator>>(RReadStream& aStream,TEikPortFlag& aThing) williamr@2: {InternalizeL(aThing,aStream);return aStream;} williamr@2: williamr@2: #include williamr@2: williamr@2: #endif // __EIKENV_H__