--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/Utils/Inc/IMSSettingsWizard.h Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,400 @@
+/*
+* Copyright (c) 2006 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: IMSSettingsWizard.h
+*
+*/
+
+
+
+#ifndef IMUMMAILSETTINGSWIZARD_H
+#define IMUMMAILSETTINGSWIZARD_H
+
+// INCLUDES
+#include <e32base.h>
+#include <e32cmn.h>
+#include <coedef.h> // TKeyResponse
+#include <w32std.h> // TKeyEvent
+#include <msvapi.h> // CMsvSession
+#include <mtudreg.h> // CMtmUiDataRegistry
+#include <muiuflagger.h>
+#include <aknnotedialog.h>
+#include <AknInfoPopupNoteController.h>
+#include "MuiuDynamicSettingsDialog.h"
+
+#include "IMSSettingsUi.h"
+#include "IMSSettingsBaseUi.h"
+#include "IMSWizardLauncher.h"
+
+// CONSTANTS
+const TInt KIMSSettingsPopupTimerNoteTextLength = 256;
+// MACROS
+// DATA TYPES
+// FUNCTION PROTOTYPES
+// FORWARD DECLARATIONS
+class CImumMboxManager;
+class CImumMboxData;
+class CImSmtpSettings;
+class CImImap4Settings;
+class CImPop3Settings;
+class CAknMessageQueryDialog;
+class CIMSSettingsWizardEditTextPage;
+class CIMSSettingsWizardRadioButtonPage;
+class CIMSSettingsItemApprover;
+class CMsvCommDbUtilities;
+class CEikRichTextEditor;
+class CMtmStore;
+class CIMSWizardLauncher;
+
+// CLASS DECLARATION
+
+/**
+* ?one_line_short_description.
+* ?other_description_lines
+*
+* @lib ?library
+* @since S60 3.0
+*/
+class CIMSSettingsWizard :
+ public CIMSSettingsBaseUI
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Destructor
+ * @since S60 3.0
+ */
+ virtual ~CIMSSettingsWizard();
+
+ /**
+ *
+ * @since S60 3.0
+ * @param aListBox, The listbox with skin support
+ */
+ static CIMSSettingsWizard* NewL(
+ CIMSSettingsUi& aDialog,
+ CImumInternalApiImpl& aMailboxApi,
+ CEikFormattedCellListBox& aListBox,
+ CIMSWizardControl& iHelpContainer,
+ CAknTitlePane& aTitlePane,
+ CEikButtonGroupContainer& aSoftkeys,
+ CMuiuFlags& aFlags,
+ const TDesC& aEmailAddress );
+
+ /**
+ *
+ * @since S60 3.0
+ * @param aListBox, The listbox with skin support
+ */
+ static CIMSSettingsWizard* NewLC(
+ CIMSSettingsUi& aDialog,
+ CImumInternalApiImpl& aMailboxApi,
+ CEikFormattedCellListBox& aListBox,
+ CIMSWizardControl& iHelpContainer,
+ CAknTitlePane& aTitlePane,
+ CEikButtonGroupContainer& aSoftkeys,
+ CMuiuFlags& aFlags,
+ const TDesC& aEmailAddress );
+
+ public: // New functions
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ void StoreSettingsToAccountL(
+ CImumInSettingsData& aSettings );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TBool SettingsStartedL( const TDesC& aEmailAddress );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ void PostponePopup();
+
+ /**
+ * Starts the settings wizard.
+ *
+ * @since S60 3.0
+ */
+ void WizRunStart();
+
+ /**
+ * Runs one step of the wizard procedure and checks
+ * the internal state.
+ *
+ * @return TBool ETrue if there are still steps to go
+ * through.
+ * @since S60 3.0
+ */
+ TBool WizRunStepL();
+
+
+ public: // Functions from base classes
+
+ /**
+ *
+ * @since S60 3.0
+ * @return ETrue, if possible to exit
+ * @return EFalse, if not possible to exit
+ */
+ TBool OkToExitL( const TInt aButtonId );
+
+
+ private: // Constructors and destructor
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ CIMSSettingsWizard(
+ CIMSSettingsUi& aDialog,
+ CImumInternalApiImpl& aMailboxApi,
+ CEikFormattedCellListBox& aListBox,
+ CIMSWizardControl& aHelpContainer,
+ CAknTitlePane& aTitlePane,
+ CMuiuFlags& aFlags );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ void ConstructL( CEikButtonGroupContainer& aSoftkeys,
+ const TDesC& aEmailAddress );
+
+ private: // New virtual functions
+ private: // New functions
+
+ // WIZARD STATES
+ void WizStateMachineL();
+ void WizStateChangeStateL();
+ void WizHandleStateInitializeL();
+ void WizHandlePageForward();
+ void WizHandlePageBackward();
+ void WizHandleStateDeterminePage();
+ void WizHandleStateEditL();
+ void WizHandleStateFinishEditingL();
+ void WizHandleStateExitL();
+
+ // WIZARD ITEM HANDLING
+ TBool ProcessValidatedItemL(
+ CMuiuSettingBase& aBaseItem );
+ void SettingsItemProcessItemL(
+ CMuiuSettingBase& aBaseItem );
+ void SettingsItemProcessProtocol(
+ CMuiuSettingBase& aBaseItem );
+ void SettingsItemProcessEmailL(
+ CMuiuSettingBase& aBaseItem );
+ void SettingsItemProcessIapL(
+ CMuiuSettingBase& aBaseItem );
+ /**
+ * Creates server address string from verifed mail address
+ * @since S60 3.0
+ */
+ void SettingsItemDefineServers(
+ const TDesC& aEmailAddress );
+ void SettingsItemDefineNormalWizardArray();
+
+ /**
+ * Creates mailbox name string from verified mail address
+ * @since S60 3.0
+ */
+ void SettingsItemDefineMailboxName(
+ const TDesC& aEmailAddress );
+
+ // CUSTOM SETTINGS
+ CAknSettingPage* AcquireCustomRadioButtonPageL(
+ TInt& aReturnSettingValue,
+ TMuiuDynSetUpdateMode& aReturnUpdateMode,
+ MDesCArray& aReturnRadioButtonArray,
+ CMuiuSettingBase& aParamBaseItem );
+ CAknSettingPage* AcquireCustomTextEditorL(
+ TMuiuSettingsText& aReturnSettingText,
+ TMuiuDynSetUpdateMode& aReturnUpdateMode,
+ CMuiuSettingBase& aParamBaseItem );
+ CAknSettingPage* AcquireCustomIapPageL(
+ TInt& aReturnSettingValue,
+ TMuiuDynSetUpdateMode& aReturnUpdateMode,
+ CDesCArrayFlat& aReturnRadioButtonArray,
+ CMuiuSettingBase& aParamBaseItem );
+ CAknSettingPage* AcquireProtocolPageL(
+ TInt& aReturnSettingValue,
+ TMuiuDynSetUpdateMode& aReturnUpdateMode,
+ CDesCArrayFlat& aReturnRadioButtonArray,
+ CMuiuSettingBase& aParamBaseItem );
+
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ void OpenHelpPageL();
+ void DefinePageNumberStringL();
+ TBool CheckEmailSkip();
+
+
+ // KEY PRESSES
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ void KeyPressNextL();
+ void KeyPressBackL();
+
+ // MISC
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TBool CheckCompleted();
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ CAknInfoPopupNoteController* ShowMailSettingsPopupAfterL(
+ const TUid& aId,
+ TInt aAfterMs );
+
+ /**
+ * Appends the MTM to the protocol selection list if the MTM supports
+ * the wizard integration and if its technology type is email.
+ *
+ * @since S60 v3.2
+ * @param aUid ID of the MTM to be checked
+ * @param aRadioButtons List of pairs containg MTM ID and the title to be shown
+ * protocol selection list
+ * @param aUiDataMtmRegistry MTM UI Data registry
+ */
+ void CheckMtmWizardSupportL(
+ CBaseMtmUiData& aMtmUiData,
+ CDesCArrayFlat& aRadioButtons );
+
+ private: // Functions from base classes
+
+ virtual TMuiuPageEventResult EventItemEditStartsL(
+ CMuiuSettingBase& aBaseItem );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ virtual void AcquireCustomSettingPageL(
+ CAknSettingPage*& aReturnPage,
+ TMuiuDynSetUpdateMode& aReturnUpdateMode,
+ TInt& aReturnSettingValue,
+ TMuiuSettingsText& aReturnSettingText,
+ CDesCArrayFlat& aReturnRadioButtonArray,
+ CMuiuSettingBase& aParamBaseItem );
+
+ // CIMSSettingsBaseUI
+ /**
+ *
+ * @since S60 3.0
+ */
+ TBool KeyPressSoftkey( const TInt aButton );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TBool KeyPressOKButtonL( const TInt aButton );
+
+ TInt EventItemEditEndsL(
+ CMuiuSettingBase& aBaseItem );
+ TMuiuPageEventResult EventItemEvaluateRadioButton(
+ const CMuiuSettingBase& aBaseItem,
+ TInt& aNewValue );
+ TMuiuPageEventResult EventItemEvaluateText(
+ const CMuiuSettingBase& aBaseItem,
+ TDes& aNewText );
+
+ /**
+ * Calls external mtm wizard
+ *
+ * @since S60 v3.2
+ * @param aMtmUid for searching rigth wizard
+ */
+ void CallExternalMtmWizardL( const TUid& aMtmUid, TBool& aCompleted );
+
+
+ private: // Datad
+
+ enum TWizState
+ {
+ EWizStateStarted = 0,
+ EWizStateDeterminePage,
+ EWizStateEditPage,
+ EWizFinishEditing,
+ EWizStateExit,
+ EWizStateQuerying
+ };
+
+ enum TWizFlags
+ {
+ EWizFlagFirstFlag = EImumSettingLastFlag,
+ EWizFlagStateRunning = EWizFlagFirstFlag,
+ EWizFlagExiting,
+ EWizFlagCompleted,
+ EWizFlagNextKeyPressed,
+ EWizFlagBackKeyPressed,
+ EWizFlagOptionsKeyPressed,
+ EWizFlagItemApproved,
+ EWizFlagRadioButtonPage,
+ EWizFlagTextEditPage,
+ EWizFlagSkipEmail,
+ EWizFlagPluginDetected,
+ EWizFlagForcedCancel,
+ EWizFlagShouldExit,
+ EWizFlagShouldClose,
+ EWizFlagLastFlag
+ };
+
+ // The current item in progress
+ TUid iCurrentItem;
+ //
+ TWizState iWizState;
+ //
+ CIMSSettingsWizardEditTextPage* iPageEdit;
+ //
+ CIMSSettingsWizardRadioButtonPage* iPageRadioBtn;
+ //
+ TInt iCurPage;
+ //
+ HBufC* iPageText;
+ //
+ CIMSWizardControl& iHelpContainer;
+ //
+ CAknInfoPopupNoteController* iNoteDialog;
+ //
+ TMuiuSettingsText iTemporaryText;
+ //Owned: To launch wizard automatically
+ CIMSWizardLauncher* iWizardLauncher;
+
+ // To keep track of the protocol
+ TUid iProtocol;
+ //Owned
+ CMtmStore* iMtmStore;
+ RArray<TInt> iProtocolArray;
+ };
+
+#endif // IMUMMAILSETTINGSWIZARD_H
+
+// End of File