diff -r 000000000000 -r 72b543305e3a messagingappbase/mcesettings/inc/MceSettingsMultipleServicesDialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/mcesettings/inc/MceSettingsMultipleServicesDialog.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,281 @@ +/* +* Copyright (c) 2002 - 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" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Message centre's mail dialog. +* Includes "mtm mailboxes" and "mtm mailbox in use" setting items. +* +*/ + + + +#ifndef __MCESETTINGSMULTIPLESERVICESDIALOG_H__ +#define __MCESETTINGSMULTIPLESERVICESDIALOG_H__ + +// INCLUDES +#include +#ifdef RD_MESSAGING_GENERAL_SETTINGS_RENOVATION +#include +#endif // RD_MESSAGING_GENERAL_SETTINGS_RENOVATION + +#include +#include +#include "MceSettingsTitlePaneHandlerDialog.h" + + +// FORWARD DECLARATIONS +class MMceSettingsAccountManager; +class CMceSettingsMultipleServicesDialog; +class CImumInternalApi; +class TUidNameInfo; +class CUidNameArray; + +// CLASS DECLARATION + +/** +* Message centre's mail dialog. +* Includes "remote mailboxes" and "Mailbox in use" setting items. +*/ +class CMceSettingsMultipleServicesDialog : + public CMceSettingsTitlePaneHandlerDialog, + public MMsvSessionObserver + + { + public: // Constructors and destructor + + /** + * Constructor. + */ + CMceSettingsMultipleServicesDialog( + MMceSettingsAccountManager& aManager, TUid aMessageType, CMsvSession* aSession ); + + /** + * Destructor. + */ + virtual ~CMceSettingsMultipleServicesDialog(); + + /** + * + */ + IMPORT_C static TInt CreateAndExecuteL( + MMceSettingsAccountManager& aManager, + TUid aMessageType, + CMsvSession* aSession ); + + public: // new methods + + /** + * Launches the dialog + * + * @since S60 v3.2 + * @param aManager + * @param aMessageType + * @param aSession + * @param aMenuResource + * @param aDialogResource + * @leave KErrNoMemory + */ + static void LaunchDialogL( + MMceSettingsAccountManager& aManager, + const TUid& aMessageType, + CMsvSession& aSession, + const TInt& aMenuResource, + const TInt& aDialogResource ); + + /** + * Launches new dialog for editing mailboxes. + */ + void EditServicesL(); + + /** + * Handles entries created session event + * Called from HandleSessionEventL + * @param aSelection: pointer to created entries + */ + void HandleEntriesCreatedL( CMsvEntrySelection* aSelection ); + + /* + * Informs that subdialog is closed + */ + void SubdialogClosed(); + + public: // Functions from base classes + /** + * From CAknDialog + */ + void ProcessCommandL( TInt aCommandId ); + + /** + * From MEikMenuObserver + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + /** + * MMsvSessionObserver + */ + void HandleSessionEventL( TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3 ); + + /** + * From CoeControl + */ + void GetHelpContext( TCoeHelpContext& aContext ) const; + + /** + * Sets the flag to indicate that the MTM services subdialog + * is not open + */ + static void ResetMtmServicesDialog(TAny* aAny); + + protected: // Functions from base classes + + /** + * From CEikDialog + */ + virtual void PreLayoutDynInitL(); + + /** + * From CEikDialog + */ + virtual TBool OkToExitL(TInt aButtonId); + + /** + * From MEikListBoxObserver + */ + virtual void HandleListBoxEventL( + CEikListBox* aListBox, + TListBoxEvent aEventType ); + + /** + * Handles this application view's command keys. Forwards other keys. + * + * @return EKeyWasConsumed if the keyboard event was consumed or + * EKeyWasNotConsumed otherwise. + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ); + + private: + /** + * Symbian constructor + * + * @since S60 v3.2 + */ + void ConstructL(TInt aResource ); + + /** + * Symbian constructor + * + * @since S60 v3.2 + */ + void ConstructL(); + + /** + * Updates the internal mailbox data information + * + * @since S60 v3.2 + * @leave KErrNoMemory + */ + void UpdateMailboxDataL(); + + /** + * Launches setting page "Mailbox in use" + * to select mailbox to be used for sending by default. + */ + void ShowListBoxSettingPageL(); + + /** + * Sets mailbox in use and sets up correct array + * for this dialog to be displayed. + */ + void SetAccountInUseL(); + + /** + * Should be called if no mailboxes defined. + * Displayes query to create new mailbox and then creates one. + * @return ETrue if user created mailbox, EFalse if they didn't. + */ + TBool HandleNoMailboxesL(); + + /** + * Launches help application + */ + void LaunchHelpL() const; + + /** + * Sets the label of the MSK button for the dialog + */ + void SetMSKButtonL(); + + /** + * Lists email accounts + * @return Returns array of email accounts + */ + CMsvEntrySelection* GetEmailAccountsL( CMsvSession& aSession ); + + /** + * Lists email accounts + * @return Returns array of email accounts + */ + CUidNameArray* MtmEmailAccountsL(); + + /** + * Updates arrays + */ + void UpdateServicesArrayL(); + + /** + * Creates new IMAP/POP mailbox. + * @return ETrue if mailbox created, + */ + TBool CreateNewImapPopL(); + + /** + * Launches a setup wizard. + */ + TBool LaunchWizardL(); + + private: + enum EActiveMenuBar { + EMultipleServices, + EMtmServices + }; + private: // Data + MMceSettingsAccountManager& iManager; + TUid iMessageType; + CDesCArrayFlat* iSettingsItemArray; + TBool iSessionObserverAdded; + CMsvSession* iSession; + TBool iStartMailboxCreationWaiter; + TBool iSubDialogForceClosed; + // Owned: Pointer to email API object + CImumInternalApi* iEmailApi; + // Array of mailbox ids + MImumInHealthServices::RMailboxIdArray iMailboxArray; + TInt iNumberOfMailboxes; +#ifdef RD_MESSAGING_GENERAL_SETTINGS_RENOVATION + RConeResourceLoader iResources; +#endif // RD_MESSAGING_GENERAL_SETTINGS_RENOVATION + TBool iSubDialogOpen; + CUidNameArray* iAccountArray; + TInt iActiveMenuBar; + CAiwServiceHandler* iAiwServiceHandler; + TBool iS60WizLaunched; + TBool iProductIncludesSelectableEmail; + TBool iMceIntegration; + // Id of the email application (other than platform email application) + TInt iMtmPluginId; + }; + +#endif // __MCESETTINGSMULTIPLESERVICESDIALOG_H__ + +// End of File