diff -r 8466d47a6819 -r 12c456ceeff2 emailuis/emailui/inc/FreestyleEmailUiAppui.h --- a/emailuis/emailui/inc/FreestyleEmailUiAppui.h Thu Dec 17 08:39:21 2009 +0200 +++ b/emailuis/emailui/inc/FreestyleEmailUiAppui.h Thu Jan 07 12:38:38 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -14,11 +14,11 @@ * Description: FreestyleEmailUiAppUi class definition * */ - + #ifndef __FREESTYLEEMAILUI_APPUI_H__ #define __FREESTYLEEMAILUI_APPUI_H__ - + // SYSTEM INCLUDES #include // SF @@ -48,7 +48,7 @@ #include "FreestyleEmailUiPropertySubscriber.h" #include "FreestyleEmailUiConstants.h" -enum TForcedStatus +enum TForcedStatus { ENoForce = 0, EForceToSync, @@ -142,7 +142,7 @@ void ProcessCommandL( TInt aCommand ); // void HandleCommandL( TInt aCommand ); - + // View switching functions void EnterFsEmailViewL( TUid aViewId ); void EnterFsEmailViewL( TUid aViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage ); @@ -157,12 +157,12 @@ * Tries to activate the local view where the current view was navigated from. * Activates the grid view if no other previous view available. * @return UID of the view to be activated - */ + */ TUid ReturnToPreviousViewL( const TDesC8& aCustomMessage = KNullDesC8 ); void ReturnFromHtmlViewerL( TBool aMessageWasDeleted = EFalse ); - // Clears the navigation history used with Back functionality. + // Clears the navigation history used with Back functionality. // Thus, next call to ReturnToPreviousViewL() will return to the main grid. void EraseViewHistory(); @@ -175,7 +175,7 @@ CFsEmailUiViewBase* PreviousActiveView(); // Tells if plugin settings view is currently open TBool IsPluginSettingsViewActive(); - + // getter to generic components CFSEmailUiLayoutHandler* LayoutHandler(); CFreestyleEmailUiTextureManager* FsTextureManager(); @@ -183,9 +183,9 @@ // Functions used by grid and viewer TInt NewEmailsInModelL(); - TInt EmailsInModelL(); + TInt EmailsInModelL(); TInt EmailIndexInModel(); - + /** * LaunchEditorL * Launch editor with the given address in TO-field and focus in MSG-field @@ -193,7 +193,7 @@ * is not transferred. */ void LaunchEditorL( CFSMailAddress* aToAddress ); - + /** * LaunchEditorL * Launch editor @@ -201,10 +201,10 @@ * @param aParams Editor launch parameters */ void LaunchEditorL( TEditorLaunchMode aMode, const TEditorLaunchParams& aParams ); - + CFSMailClient* GetMailClient(); CFSEmailCRHandler* GetCRHandler(); - + // Gets active mailbox pointer from the UI // Ownership IS NOT transferred to the callers CFSMailBox* GetActiveMailbox(); @@ -215,11 +215,11 @@ TFSMailMsgId GetActiveBoxInboxId(); TFSMailMsgId GetActiveMailboxId(); - + /** * Show folder list or sort list as control bar popup list. - * - * @param aCurrentSortOrder Current sort order in mail list + * + * @param aCurrentSortCriteria Current sort criteria in mail list * @param aFolderId/Type Folder id/type of the currently active mail folder * @param aCallback Callback pointer to use when reporting user selection * @param aButton Selected control bar button, used when positioning the list @@ -227,21 +227,21 @@ void ShowFolderListInPopupL( const TFSMailMsgId aFolderType, MFSEmailUiFolderListCallback* aCallback, MFsControlButtonInterface* aButton ); - void ShowSortListInPopupL( const TFSMailSortField aCurrentSortOrder, + void ShowSortListInPopupL( const TFSMailSortCriteria aCurrentSortCriteria, const TFSFolderType aFolderType, MFSEmailUiSortListCallback* aCallback, MFsControlButtonInterface* aButton ); void FolderPopupClosed(); - + // Transition effects for Alf layouts, call these in doactivate and dodeactivate. TBool ViewSwitchingOngoing(); - + // Force Sync on active mailbox. void SyncActiveMailBoxL(); - + // Stop mailbox sync void StopActiveMailBoxSyncL(); - + // From sync observer void RequestResponseL( TFSProgress aEvent, TInt aRequestId ); @@ -249,19 +249,20 @@ * Helper method to be called from Settings. Launches mailbox setup wizard. */ void LaunchWizardL(); - + // Overriden exit void Exit(); void ExitNow(); const CFSEmailUiShortcutBinding& ShortcutBinding() const; - + // Navigation functions, used mainly from viewer TBool IsNextMsgAvailable( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundNextMsgId, TFSMailMsgId& aFoundNextMsgFolder ); TBool IsPreviousMsgAvailable( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundPreviousMsgId, TFSMailMsgId& aFoundPrevMsgFolder ); TInt MoveToNextMsgL( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundNextMsgId ); TInt MoveToPreviousMsgL( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundPreviousMsgId ); + TInt MoveToPreviousMsgAfterDeleteL( TFSMailMsgId aFoundPreviousMsgId ); /** Returns document handler. */ CDocumentHandler& DocumentHandler(); @@ -300,41 +301,41 @@ // MessageReader implementation void StartReadingEmailsL(); TBool MessageReaderSupportsFreestyle(); - + static TBool AppUiExitOngoing(); - // Meeting request viewer instance, owned by the appui - CESMRIcalViewer* MrViewerInstanceL(); + // Meeting request viewer instance, owned by the appui + CESMRIcalViewer* MrViewerInstanceL(); // Get Mail viewer instance, owned by the AppUi - CFsEmailUiHtmlViewerView& MailViewer(); - + CFsEmailUiHtmlViewerView& MailViewer(); + // Get Folder list instance, owned by the AppUi CFSEmailUiFolderListVisualiser& FolderList(); - + // Get Launcher grid instance, owned by the AppUi CFSEmailUiLauncherGridVisualiser& LauncherGrid(); - + // View loading in idle TInt ViewLoadIdleCallbackFunctionL(); - + /** - * Sets the manual mailbox syncronisation/connection flag if the + * Sets the manual mailbox syncronisation/connection flag if the * user chose to synchorise/connect mail boxes from the menu */ void ManualMailBoxSync( TBool aManualMailBoxSync ); void ManualMailBoxSyncAll( TBool aManualMailBoxSyncAll ); void ManualMailBoxConnectAll( TBool aManualMailBoxConnectAll ); void ManualMailBoxDisconnectAll( TBool aManualMailBoxConnectAll ); - - // For showing mailbox query + + // For showing mailbox query void GridStarted( TBool aStartedFromOds ); void ShowMailboxQueryL(); - + void DoAutoConnectL(); - + CFSEmailDownloadInfoMediator* DownloadInfoMediator(); - + // TDisplayMode DisplayMode() const; // @@ -348,7 +349,7 @@ public: //from MFSMailEventObserver /** - * Framework event message. + * Framework event message. * Used here to catch the events thrown from new mailbox creation process. * * @param aEvent One of pre-defined events in TFSMailEvent @@ -357,10 +358,10 @@ * @param aParam2 intepretation is event specific (see TFSMailEvent descriptions) * @param aParam3 intepretation is event specific (see TFSMailEvent descriptions) */ - void EventL( TFSMailEvent aEvent, TFSMailMsgId aMailbox, + void EventL( TFSMailEvent aEvent, TFSMailMsgId aMailbox, TAny* aParam1, TAny* aParam2, TAny* aParam3); - -public: + +public: void HandleSessionEventL( TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3 ); public: // MIAUpdateObserver @@ -368,7 +369,7 @@ virtual void UpdateQueryComplete( TInt aErrorCode, TBool aUpdateNow ); virtual void UpdateComplete( TInt aErrorCode, CIAUpdateResult* aResultDetails ); -public: +public: /** * StartEndKeyCapture @@ -389,30 +390,29 @@ * @return instance of correct navidecorator. NULL if aView doesn't match. */ CAknNavigationDecorator* NaviDecoratorL( const TUid aViewId ); - + public: - - virtual void TimerEventL( CFSEmailUiGenericTimer* aTriggeredTimer ); - + /** - * CancelFocusRemovalTimer - * Cancels focus removal timer - */ - void CancelFocusRemovalTimer(); - + * From MFSEmailUiGenericTimerCallback. + * Generic timer event callback. + */ + virtual void TimerEventL( CFSEmailUiGenericTimer* aTriggeredTimer ); + /** - * StartFocusRemovalTimer - * Starts focus removal timer - * @return whether or not timer was active already. + * Sets visibility for focus. + * + * @param aVisible EFalse if focus should be hidden. + * @return whether or not focus was already visible. */ - TBool StartFocusRemovalTimer(); - + TBool SetFocusVisibility( TBool aVisible ); + /** - * IsTimerFocusShown - * Used for finding out if the timer focus is already visible - * @return whether or not the timer focus is visible. + * IsFocusShown + * Used for finding out if focus is visible. + * @return whether or not the focus is visible. */ - TBool IsTimerFocusShown() const; + TBool IsFocusShown() const; public: // From MFreestyleEmailUiPropertyChangedObserver. @@ -420,45 +420,45 @@ void PropertyChangedL( TInt aValue ); -protected: +protected: TKeyResponse HandleKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); void HandleResourceChangeL(TInt aType); - void HandleWsEventL(const TWsEvent &aEvent, + void HandleWsEventL(const TWsEvent &aEvent, CCoeControl *aDestination); - + void HandleForegroundEventL( TBool aForeground ); MCoeMessageObserver::TMessageResponse HandleMessageL( TUint32 aClientHandleOfTargetWindowGroup, TUid aMessageUid, const TDesC8& aMessageParameters ); - + private: void DoHandleResourceChangeL(TInt aType); void UpdateSettingsListModelL(); CAlfTexture& LoadItemIconL( TInt aUid ); - void ProvideBitmapL(TInt aId, CFbsBitmap*& aBitmap, + void ProvideBitmapL(TInt aId, CFbsBitmap*& aBitmap, CFbsBitmap*& aMaskBitmap); - + /** * Helper method for launching a setup wizard, or handling data received from one. */ void DoWizardStartupActionsL(); - + TBool IsViewInHistoryStack( TUid aViewId ) const; - + void ReturnToViewL( TUid aViewId, TUid aCustomMessageId = TUid::Null(), const TDesC8& aCustomMessage = KNullDesC8 ); - + // Checks updates from IAD client void CheckUpdatesL(); void AllUpdateActivitiesCompleted(); // This async callback functionality is needed because UI and app construction - // cannot jam while the new mailbox query has been displayed + // cannot jam while the new mailbox query has been displayed static TInt DisplayCreateQueryL( TAny* aSelfPtr ); void DisplayCreateMailboxQueryL(); - + // Send self to background. void SendToBackground(); - + /* * Called from ConstructL during start of application. * Constructs navipane(s) that are used by different views. @@ -469,32 +469,26 @@ void CreateStatusPaneIndicatorsL(); // Delete custom status pane indicators void DeleteStatusPaneIndicators(); - - /* - * FocusTimerCallBack - * Called when focus removal timer expires - */ - static TInt FocusTimerCallBack(TAny* aAny); - - /* - * DoFocusTimerCallBack - * Called when focus removal timer expires - */ - TInt DoFocusTimerCallBack(); - - + + // Load specified resource file, file name may (and should) contain wild + // cards. aFilePath should contain drive letter if some specific drive + // is wanted to be searched first. Returns the resource file offset of the + // found file. Leaves if resource file not found. + TInt LoadResourceFileL( const TDesC& aFileName, + const TDesC& aFilePath ); + private: // ALF environment NOTE: Display removed from Alfred version CAlfEnv* iEnv; - + // Pointers to current and previous active views CFsEmailUiViewBase* iCurrentActiveView; // not owned CFsEmailUiViewBase* iPreviousActiveView; // not owned CStack* iNavigationHistory; // items not owned - + CFSEmailDownloadInfoMediator* iDwnldMediator; - - // Pointers to actual display control groups containing UI elements + + // Pointers to actual display control groups containing UI elements CAlfControlGroup* iGridControlGroup; CAlfControlGroup* iMailListControlGroup; CAlfControlGroup* iEmailViewerControlGroup; @@ -508,7 +502,7 @@ CAlfControlGroup* iSearchResultControlGroup; CAlfControlGroup* iStatusIndicatorControlGroup; CAlfControlGroup* iHtmlViewerControlGroup; - + // FS Email UI specific layout handler object CFSEmailUiLayoutHandler* iLayoutHandler; @@ -516,13 +510,13 @@ // layout manager doesn't exists in cmail //CFsLayoutManager* iLayoutManager; // - + // FS Email UI specific texture mngr object CFreestyleEmailUiTextureManager* iFsTextureManager; // Main UI grid control and view CFSEmailUiLauncherGrid* iMainUiGrid; - CFSEmailUiLauncherGridVisualiser* iMainUiGridVisualiser; + CFSEmailUiLauncherGridVisualiser* iMainUiGridVisualiser; // Mail view CFSEmailUiMailListVisualiser* iMailListVisualiser; @@ -541,11 +535,11 @@ // Folder list view CFSEmailUiFolderListVisualiser* iFolderListVisualiser; - + // Attachment list CFSEmailUiAttachmentsListVisualiser* iAttachmentListVisualiser; CFreestyleEmailUiAttachmentsListControl* iAttachmentHanlerControl; - + // Download manager removed. // Search result list view @@ -557,74 +551,74 @@ // Mailclient, list of mailboxes, active mailbox and // latest opened folder CFSMailClient* iMailClient; - + // Active mailbox, pointer owned by the APP UI! CFSMailBox* iActiveMailbox; TFSMailMsgId iActiveBoxInboxId; TFSMailMsgId iActiveMailboxId; - + // Mail sending progress dialog CAknProgressDialog* iSendingProgressDialog; CEikProgressInfo* iSendingProgressInfo; - + // Phonebook engine and resource handle TInt iPhCltResHandle; - + // Central repository handler CFSEmailCRHandler* iCRHandler; - + // End key capture handles TInt32 iEndCaptureHandle; TInt32 iEndUpDownCaptureHandle; - + CMsvSession* iMsvSession; CFSEmailUiActionMenu* iActionMenuHandler; - + RArray iSubscribedMailBoxes; RArray iSubscribedMailBoxesIds; - + // Helper class for keyboard shortcut handling CFSEmailUiShortcutBinding* iShortcutBinder; - + CFSEmailUiWizardObserver* iWizardObserver; CDocumentHandler* iDocumentHandler; CFsEmailFileHandleShutter* iFileHandleShutter; TBool iConstructComplete; - + TInt iSyncStatusReqId; - + TBool iIsForeground; - + CIdle* iViewLoadIdle; TCallBack* iViewLoadIdleCallback; TBool iIsCaptured; - - CVPbkContactManager* iVpkContactManager; - + + CVPbkContactManager* iVpkContactManager; + //This is used to pass needed information to messagereader HBufC8* iCustomMessageToMessageReader; - - // Meeting request viewer instance - CESMRIcalViewer* iMRViewer; - - // Flag to be used to disable online/offline note in automated + + // Meeting request viewer instance + CESMRIcalViewer* iMRViewer; + + // Flag to be used to disable online/offline note in automated // Mailbob online TBool iAutomatedMailBoxOnline; - + // Value indicating that msg reader is supported, KErrNone if supported. TInt iMsgReaderIsSupported; // For IAD CIAUpdate* iUpdateClient; CIAUpdateParameters* iUpdateParameters; - + // For feature manager TBool iFeatureManagerInitialized; - + //ETrue if user started the sync/connect all TBool iManualMailBoxSync; TBool iManualMailBoxSyncAll; @@ -633,33 +627,33 @@ // ETrue if the screen layout has chaged while the application was on background TBool iPendingLayoutSwitch; - + // Startup mailbox creation query flag. - TBool iStartupQueryShown; + TBool iStartupQueryShown; TBool iGridStarted; - TBool iGridFirstStartFromOds; + TBool iGridFirstStartFromOds; TBool iSettingsViewActive; TBool iIADUpdateCompleted; - - CFSEmailUiAutosyncMonitor* iAutoSyncMonitor; - + + CFSEmailUiAutosyncMonitor* iAutoSyncMonitor; + // Async callback for create mailbox query - // This is needed because query can not stop execution of UI construction + // This is needed because query can not stop execution of UI construction CAsyncCallBack* iNewBoxQueryAsyncCallback; - // Exit guardian. + // Exit guardian. CEUiExitGuardian* iExitGuardian; // navipane decorator // (used at least in mail viewer) CAknNavigationDecorator* iNaviDecorator2MailViewer; - + // Resource file offset for message editor external resources TInt iMsgEditorResourceOffset; - + // Resource file offset for FSMailServer external resources TInt iFSMailServerResourceOffset; - + // Custom status pane indicators CCustomStatuspaneIndicators* iStatusPaneIndicators; TBool iConnectionStatusVisible; @@ -676,10 +670,9 @@ // For handling the flip state. CFreestyleEmailUiPropertySubscriber* iPropertySubscriber; TBool iFlipOpen; - - // Timer for focus removal purposes. Owned - CPeriodic* iFocusTimer; + /// Focus visibility state + TBool iFocusVisible; }; @@ -690,7 +683,7 @@ class CFSEmailUiAutosyncMonitor : public CActive { public: - enum TNetworkStatus + enum TNetworkStatus { EStatusUnknown = 0, EHomenetwork, @@ -704,24 +697,24 @@ ERequestingNetworkStatus, EDone }; - + static CFSEmailUiAutosyncMonitor* NewL( CFreestyleEmailUiAppUi& aAppUi ); ~CFSEmailUiAutosyncMonitor(); - public: + public: void StartMonitoring( ); void StopMonitoring( ); - private: + private: void RunL(); void DoCancel(); TInt RunError( TInt aError ); - + private: CFSEmailUiAutosyncMonitor( CFreestyleEmailUiAppUi& aAppUi ); - void ConstructL(); + void ConstructL(); - private: + private: TMonitoringStatus iMonitoringStatus; CFreestyleEmailUiAppUi& iAppUi; RTelServer iServer;