--- /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 <AiwServiceHandler.h>
+#ifdef RD_MESSAGING_GENERAL_SETTINGS_RENOVATION
+#include <ConeResLoader.h>
+#endif // RD_MESSAGING_GENERAL_SETTINGS_RENOVATION
+
+#include <msvapi.h>
+#include <ImumInHealthServices.h>
+#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