--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/Utils/Inc/IMSSettingsNoteUi.h Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,399 @@
+/*
+* 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: Contains functions to show notes in UI
+*
+*
+*/
+
+
+#ifndef IMSSETTINGSNOTEUI_H
+#define IMSSETTINGSNOTEUI_H
+
+// INCLUDES
+#include <e32base.h>
+#include <e32cmn.h>
+#include <AknQueryDialog.h>
+#include <ImumUtils.rsg>
+#include "MuiuDynamicHeader.h"
+#include "MuiuDynamicSettingsDialog.h"
+#include <AknInfoPopupNoteController.h>
+
+// CONSTANTS
+const TInt KMaxVisibleTime = KMaxTInt / 1000;
+enum TIMSNotes
+ {
+ EIMSConfirmationNote = 0,
+ EIMSInformationNote,
+ EIMSErrorNote,
+ EIMSWarningNote
+ };
+
+enum TIMSErrors
+ {
+ // Common
+ EIMSNoError = 0,
+ EIMSItemInvalid,
+ EIMSItemEmpty,
+ // Mailbox
+ EIMSMailboxNameExists,
+ EIMSMailboxNameEmpty,
+ EIMSMailboxNameRejected,
+ // Always Online
+ EIMSAoAlwaysAsk,
+ EIMSAoIAPPassword,
+ EIMSAoNoLogin,
+ EIMSAoOmaEmnOn,
+ EIMSOmaEmnAoOn,
+ EIMSAoManyAlwaysOnline,
+ EIMSAoFetchNotAccepted,
+ EIMSAoIapTypeCSD
+ };
+
+// DATA TYPES
+// FUNCTION PROTOTYPES
+// FORWARD DECLARATIONS
+class CImumInternalApiImpl;
+class CIMSSettingsBaseUI;
+class CAknResourceNoteDialog;
+class CMuiuFlags;
+
+// CLASS DECLARATION
+
+/**
+*
+* @lib
+* @since S60 3.0
+*/
+NONSHARABLE_CLASS( CIMSSettingsNoteUi ) : public CBase
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Creates object from CIMSSettingsNoteUi and leaves it to cleanup stack
+ * @since S60 3.0
+ * @return, Constructed object
+ */
+ static CIMSSettingsNoteUi* NewLC(
+ CImumInternalApiImpl& aEmailApi,
+ CIMSSettingsBaseUI& aDialog );
+
+ /**
+ * Create object from CIMSSettingsNoteUi
+ * @since S60 3.0
+ * @return, Constructed object
+ */
+ static CIMSSettingsNoteUi* NewL(
+ CImumInternalApiImpl& aEmailApi,
+ CIMSSettingsBaseUI& aDialog );
+
+ /**
+ * Destructor
+ * @since S60 3.0
+ */
+ virtual ~CIMSSettingsNoteUi();
+
+ public: // New functions
+
+ /**
+ * Shows the query for user and waits for user answer.
+ *
+ * @since S60 3.0
+ * @param aTextResource Resource string, that shall be shown in note
+ * @param aDialogResource ResourceId of dialog, which shall be used
+ * Locate the resource dialogs from emailutils.ra
+ * @param aTone Tone to be played with query
+ * Class CAknQueryDialog defines the TTone type, which contains
+ * following enumerations:
+ * - ENoTone
+ * - EConfirmationTone
+ * - EWarningTone
+ * - EErrorTone
+ * Example usage: CAknQueryDialog::EConfirmationTone
+ * @return Command returned from the query
+ */
+ IMPORT_C static TInt ShowQueryL(
+ const TUint aTextResource,
+ const TInt aDialogResource = R_EMAIL_CONFIRMATION_QUERY,
+ const TBool& aClearBackground = EFalse,
+ const CAknQueryDialog::TTone aTone = CAknQueryDialog::ENoTone );
+
+ IMPORT_C static TInt ShowQueryL(
+ const TDesC& aText,
+ const TInt aDialogResource = R_EMAIL_CONFIRMATION_QUERY,
+ const TBool& aClearBackground = EFalse,
+ const CAknQueryDialog::TTone aTone = CAknQueryDialog::ENoTone );
+
+ /**
+ *
+ *
+ * @since S60 v3.2
+ */
+ template<TInt TLength>
+ static inline TInt ShowQueryL(
+ const TInt aTextResource,
+ const TDesC& aAdditionalText,
+ const TInt aDialogResource = R_EMAIL_CONFIRMATION_QUERY,
+ const TBool& aClearBackground = EFalse,
+ const CAknQueryDialog::TTone& aTone = CAknQueryDialog::ENoTone );
+
+
+ /**
+ * This function fetches the text from given resource file and shows
+ * the string found from it in small note box.
+ * More info in file aknnotewrappers.h
+ *
+ * @since S60 3.0
+ * @param aNoteType Type of note to be shown
+ * Avkon offers several type of notes, which differs from each
+ * other. There are following types of notes available:
+ * - EMsvConfirmationNote
+ * - EMsvInformationNote
+ * - EMsvErrorNote
+ * - EMsvWarningNote
+ * @param aNoteWaiting Parameter to create the note
+ * When parameter is TRUE, created note will be waitnote
+ * When parameter is FALSE, note is not waitnote
+ * @param aResource Resource string, that shall be shown in note
+ * @param aFile File, from the string shall be read
+ */
+ IMPORT_C static void ShowNoteL(
+ const TUint aResource,
+ const TIMSNotes& aNoteType = EIMSErrorNote,
+ const TBool aNoteWaiting = EFalse );
+
+ IMPORT_C static void ShowNoteL(
+ const TDesC& aText,
+ const TIMSNotes& aNoteType = EIMSErrorNote,
+ const TBool aNoteWaiting = EFalse );
+
+ /**
+ * @since S60 3.2
+ */
+ IMPORT_C static void ShowNoteL(
+ const TUint aResource,
+ TIMSNotes aNoteType,
+ TBool aNoteWaiting,
+ TInt aTimeOut
+ );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ static HBufC* MakeStringLC( const TUint aTextResource );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ static void MakeString(
+ TDes& aDest,
+ TInt aResourceId,
+ TInt aValue );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ static void MakeStringL(
+ TDes& aDest,
+ TInt aResourceId,
+ const TDesC& aSubs );
+
+ /**
+ *
+ * @since S60 3.2
+ */
+ static void MakeString(
+ TDes& aDest,
+ const TDesC& aTag,
+ const TDesC& aSubs );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ static CAknInfoPopupNoteController* ShowPopupLC(
+ const TInt aResource,
+ const TInt aAfterMs,
+ const TInt aPopupVisibleTime = KMaxVisibleTime );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ static CAknInfoPopupNoteController* ShowPopupL(
+ const TInt aResource,
+ const TInt aAfterMs,
+ const TInt aPopupVisibleTimeMs = KMaxVisibleTime );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TMuiuPageEventResult ShowDialog(
+ const CMuiuSettingBase& aBaseItem,
+ const TIMSErrors aError,
+ const TDesC& aNewText );
+
+ public: // Functions from base classes
+
+ protected: // Constructors
+
+ /**
+ * Default constructor for classCIMSSettingsNoteUi
+ * @since S60 3.0
+ * @return, Constructed object
+ */
+ CIMSSettingsNoteUi(
+ CImumInternalApiImpl& aEmailApi,
+ CIMSSettingsBaseUI& aDialog );
+
+ /**
+ * Symbian 2-phase constructor
+ * @since S60 3.0
+ */
+ void ConstructL();
+
+ protected: // New virtual functions
+ protected: // New functions
+ protected: // Functions from base classes
+
+ private: // New virtual functions
+ private: // New functions
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TMuiuPageEventResult ShowProtocolErrorNoteL(
+ const TIMSErrors aError );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TMuiuPageEventResult ShowEmailAddressErrorNoteL(
+ const TIMSErrors aError );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TMuiuPageEventResult ShowServerErrorNoteL(
+ const TIMSErrors aError );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TMuiuPageEventResult ShowIapErrorNoteL(
+ const TIMSErrors aError );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TMuiuPageEventResult ShowWizMailboxNameErrorNoteL(
+ const TIMSErrors aError );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TBool ShowMailboxAlreadyExistsErrorNoteL(
+ const TDesC& aMailboxName );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TMuiuPageEventResult ShowSetMailboxNameErrorNoteL(
+ const TIMSErrors aError,
+ const TDesC& aMailboxName );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TMuiuPageEventResult ShowProtocolReadOnlyErrorNoteL(
+ const TIMSErrors aError );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TMuiuPageEventResult ShowAlwaysOnlineErrorNoteL(
+ const TIMSErrors aError );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TMuiuPageEventResult ShowAoCsdIapError();
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TMuiuPageEventResult ShowAlwaysOnlineRemovalQueryL(
+ const TIMSErrors aError );
+
+ /**
+ *
+ * @since S60 3.0
+ */
+ TMuiuPageEventResult ShowFetchLimitErrorNoteL(
+ const TIMSErrors aError );
+
+
+ /**
+ * Selects which dialog to show based on aBaseItem
+ * @param aBaseItem determines which note should be shown
+ * @param aError tells what error has occurred
+ * @return users answer
+ * @since S60 3.2
+ */
+ TMuiuPageEventResult SelectDialogL(
+ const CMuiuSettingBase& aBaseItem,
+ const TIMSErrors aError,
+ const TDesC& aNewText );
+
+ /**
+ * @since S60 3.2
+ */
+ static CAknResourceNoteDialog* NewNoteL( TIMSNotes aNoteType,
+ TBool aNoteWaiting );
+
+ /**
+ * Removes a screen clearer from the stack if a leave occurs.
+ * @param aScreenClearer ScreenClearer pointer.
+ */
+ static void ScreenClearerCleanupOperation( TAny* aScreenClearer );
+
+ private: // Functions from base classes
+
+ public: // Data
+ protected: // Data
+ private: // Data
+
+ // Dialog that owns the notification UI
+ CIMSSettingsBaseUI& iDialog;
+ // Internal mail API implementation
+ CImumInternalApiImpl& iMailboxApi;
+ };
+
+#include "IMSSettingsNoteUi.inl"
+
+#endif // IMSSETTINGSNOTEUI_H
\ No newline at end of file