diff -r 000000000000 -r 72b543305e3a email/imum/Utils/Inc/IMSSettingsNoteUi.h --- /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 +#include +#include +#include +#include "MuiuDynamicHeader.h" +#include "MuiuDynamicSettingsDialog.h" +#include + +// 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 + 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