diff -r 000000000000 -r 72b543305e3a email/imum/Utils/Inc/ImumMboxDataExtension.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imum/Utils/Inc/ImumMboxDataExtension.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,507 @@ +/* +* 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: Defines an API to create and edit mailbox settings +* +*/ + + + +#ifndef CImumMboxDataExtension_H +#define CImumMboxDataExtension_H + +// INCLUDES +#include +#include // TBuf +#include +#include +//#include "MuiuDynamicSettingItemBase.h" // TMuiuSettingsText + +// CONSTANTS + +enum TMailAoStates + { + EMailAoAlways = 0, + EMailAoHomeOnly, + EMailAoOff + }; + +enum TMailEmnStates + { + EMailEmnAutomatic = 0, + EMailEmnHomeOnly, + EMailEmnOff + }; + +enum TMailAoUpdateModes + { + EMailAoHeadersOnly = 0, + EMailAoBody, + EMailAoBodyAndAttas + }; + +// Flags to handle status of settings +enum TIMASMailSettingsStatusFlags + { + EIMASStatusTempRcvPassword = 0, + EIMASStatusTempSndPassword, + EIMASStatusLastFlag + }; + +// Mail deletion setting mode +enum TIMASMailDeletionMode + { + EIMASMailDeletionAlwaysAsk = 0, + EIMASMailDeletionPhone, + EIMASMailDeletionServer + }; + +// MACROS +// DATA TYPES +// FUNCTION PROTOTYPES +// FORWARD DECLARATIONS +// CLASS DECLARATION + +/** +* Utility structure TAOInfo. +* Contains info was last update successful ( TBool ) +* and the date and time of last successful update ( TTime ) +*/ +struct TAOInfo + { + TBool iLastUpdateFailed; + TTime iLastSuccessfulUpdate; + TBool iUpdateSuccessfulWithCurSettings; + }; + +/** +* Settings extension to current mailbox settings +* +* @lib Imum.lib +* @since S60 3.0 +*/ +class CImumMboxDataExtension : public CBase + { + public: // Constructors and destructor + + /** + * Creates mailbox extension object + * @since S60 3.0 + */ + static CImumMboxDataExtension* NewLC(); + + /** + * Creates mailbox extension object + * @since S60 3.0 + */ + static CImumMboxDataExtension* NewL(); + + /** + * Destructor + * @since S60 3.0 + */ + virtual ~CImumMboxDataExtension(); + + public: // New functions + + /** + * Verifies the validy of the metadata in the settings + * @since S60 3.0 + * @return ETrue if the settings are valid + * @return EFalse if the settings are invalid + */ + TBool IsSettingsValid() const; + + // COMMON + + /** + * Retrieves the status flags of the settings + * @since S60 3.0 + * @return Status flags + */ + void SetStatusFlags( const TMuiuFlags& aStatusFlags ); + + /** + * Retrieves the status flags of the settings + * @since S60 3.0 + * @return Status flags + */ + const TMuiuFlags& StatusFlags() const; + + /** + * Makes identical copy of settings + * @since S60 3.0 + * @param aExtension, Setting to be copied + */ + void CopyL( + const CImumMboxDataExtension& aExtension ); + + /** + * Sets the id of the mailbox the setting is associated with + * This is not exported + * @since S60 3.0 + * @param aMailboxId, Mailbox, who owns the settings + */ + void SetMailboxId( + const TMsvId aMailboxId ); + + /** + * Returns the id of the owner of the setting + * @since S60 3.0 + * @return Mailbox id + */ + TMsvId MailboxId() const; + + /** + * Set the account id of the base settings + * This is not exported + * @since S60 3.0 + * @param aAccountId, Sets value of iAccountId + */ + void SetAccountId( const TUint32 aAccountId ); + + /** + * Get the account id of the base settings + * @since S60 3.0 + * @return value of iAccountId + */ + TUint32 AccountId() const; + + /** + * Set the account id of the extended settings + * This is not exported + * @since S60 3.0 + * @param aExtensionId, Sets value of iExtensionId + */ + void SetExtensionId( const TUint32 aExtensionId ); + + /** + * Get the account id of the extended settings + * @since S60 3.0 + * @return value of iExtensionId + */ + TUint32 ExtensionId() const; + + /** + * Set method for member iProtocol + * This is not exported + * @since S60 3.0 + * @param aProtocol, Sets value of iProtocol + */ + void SetProtocol( const TUid& aProtocol ); + + /** + * Get function for member iProtocol + * @since S60 3.0 + * @return value of iProtocol + */ + TUid Protocol() const; + + /** + * Set method for member iEmailAddress + * @since S60 3.0 + * @param aEmailAddress, Sets value of iEmailAddress + */ + void SetEmailAddress( const TDesC& aEmailAddress ); + + /** + * Get function for member iEmailAddress + * @since S60 3.0 + * @return value of iEmailAddress + */ + const TDesC* EmailAddress() const; + + // EXTENDED MAIL SETTINGS + + /** + * Sets the state of email notification -flag + * @since S60 3.0 + */ + void SetEmailNotificationState( + const TMailEmnStates aEmnState ); + + /** + * Fetches the state of email notification -flag + * @since S60 3.0 + * @return ETrue or EFalse, according to flag state + */ + TMailEmnStates EmailNotificationState() const; + + /** + * A flag to + * @since S60 3.0 + * @param aNewMailIndicators, Sets value of iNewMailIndicators + */ + void SetNewMailIndicators( + const TInt aNewState ); + + /** + * + * @since S60 3.0 + * @return value of EMailNewIndicators + */ + TBool NewMailIndicators() const; + + /** + * Sets the state of hide messages -flag + * @since S60 3.0 + * @param aNewState, The new state of the flag + */ + void SetHideMsgs( + const TBool aNewState ); + + /** + * Fetches the state of hide messages -flag + * @since S60 3.0 + * @return ETrue or EFalse, according to flag state + */ + TBool HideMsgs() const; + + /** + * Sets the value of open html mail -setting + * @since S60 3.0 + * @param aOpenHtmlMail, New value of the setting + */ + void SetOpenHtmlMail( + const TInt aOpenHtmlMail ); + + /** + * Fetches the state of open html mail -setting + * @since S60 3.0 + * @return Setting value + */ + TInt OpenHtmlMail() const; + + // ALWAYS ONLINE + + /** + * Get function for member iVersion + * @since S60 3.0 + * @return value of iVersion + */ + TInt Version() const; + + /** + * Set method for member iAlwaysOnlineState + * @since S60 3.0 + * @param aAlwaysOnlineState, Sets value of iAlwaysOnlineState + */ + void SetAlwaysOnlineState( + const TMailAoStates aAlwaysOnlineState ); + + /** + * Get function for member iAlwaysOnlineState + * @since S60 3.0 + * @return value of iAlwaysOnlineState + */ + TMailAoStates AlwaysOnlineState() const; + + /** + * Set method for member iSelectedWeekDays + * @since S60 3.0 + * @param aSelectedWeekDays, Sets value of iSelectedWeekDays + */ + void SetSelectedWeekDays( + const TUint aSelectedWeekDays ); + + /** + * Get function for member iSelectedWeekDays + * @since S60 3.0 + * @return value of iSelectedWeekDays + */ + TUint SelectedWeekDays() const; + + /** + * Set method for member iSelectedTimeStart + * @since S60 3.0 + * @param aSelectedTimeStart, Sets value of iSelectedTimeStart + */ + void SetSelectedTimeStart( + const TTime aSelectedTimeStart ); + + /** + * Get function for member iSelectedTimeStart + * @since S60 3.0 + * @return value of iSelectedTimeStart + */ + TTime SelectedTimeStart() const; + + /** + * Set method for member iSelectedTimeStop + * @since S60 3.0 + * @param aSelectedTimeStop, Sets value of iSelectedTimeStop + */ + void SetSelectedTimeStop( + const TTime aSelectedTimeStop ); + + /** + * Get function for member iSelectedTimeStop + * @since S60 3.0 + * @return value of iSelectedTimeStop + */ + TTime SelectedTimeStop() const; + + /** + * Set method for member iInboxRefreshTime + * @since S60 3.0 + * @param aInboxRefreshTime, Sets value of iInboxRefreshTime + */ + void SetInboxRefreshTime( + const TInt aInboxRefreshTime ); + + /** + * Get function for member iInboxRefreshTime + * @since S60 3.0 + * @return value of iInboxRefreshTime + */ + TInt InboxRefreshTime() const; + + /** + * Set method for member iUpdateMode + * @since S60 3.0 + * @param aUpdateMode, Sets value of iUpdateMode + */ + void SetUpdateMode( + const TMailAoUpdateModes aUpdateMode ); + + /** + * Get function for member iUpdateMode + * @since S60 3.0 + * @return value of iUpdateMode + */ + TMailAoUpdateModes UpdateMode() const; + + /** + * Set method for member iLastUpdateInfo + * @since S60 3.0 + * @param aLastUpdateInfo, Sets value of iLastUpdateInfo + */ + void SetLastUpdateInfo( const TAOInfo& aLastUpdateInfo ); + + /** + * Get function for member iLastUpdateInfo + * @since S60 3.0 + * @return value of iLastUpdateInfo + */ + TAOInfo LastUpdateInfo() const; + + /** + * Set mail deletion setting mode + * @since S60 3.2 + * @param aMailDeletion, Sets value of iMailDeletion + */ + void SetMailDeletion( const TIMASMailDeletionMode aMailDeletion ); + + /** + * Get mail deletion setting mode + * @since S60 3.2 + * @return value of iMailDeletion + */ + TIMASMailDeletionMode MailDeletion() const; + + /** + * Sets the predefinition status + * @since S60 v3.2 + * @param aIsPredefined, Predefinition state + */ + void SetIsPredefined( const TBool& aIsPredefined ); + + /** + * Gets the predefinition status + * @since S60 v3.2 + * @return Predefinition status + */ + TBool IsPredefined() const; + + public: // Functions from base classes + + protected: // New virtual functions + protected: // New functions + protected: // Functions from base classes + + private: // Constructors and destructor + + /** + * ConstructL + * @since S60 3.0 + */ + void ConstructL(); + + /** + * Default constructor + * @since S60 3.0 + */ + CImumMboxDataExtension(); + + private: // New virtual functions + private: // New functions + private: // Functions from base classes + + public: // Data + protected: // Data + private: // Data + + enum TMailExtensionFlags + { + EMailNewIndicators = 0, + EMailNewNotifications, + EMailHideMsgsOverLimit, + EMailShowFieldCC, + EMailShowFieldBCC, + EMailShowFieldSubject, + EMailIsPredefined, + EMailLastFlag + }; + + // Common: Status flags of settings + TMuiuFlags iStatusFlags; + // Common: Id of the mailbox this settings belongs + TInt iMailboxId; + // Common: Account id of the base settings + TUint32 iAccountId; + // Common: Account id of the extended settings + TUint32 iExtensionId; + // Common: Protocol of the base settings + TUid iProtocol; + // Extended: The setting flags + TMuiuFlags iFlags; + // Extended: + TInt iOpenHtmlMail; + // AO: + TInt iVersion; + // AO: + TMailAoStates iAlwaysOnlineState; + // AO: Selected weekdays: 0-6 = Monday-Sunday + TUint iSelectedWeekDays; + // AO: Connection starting time + TTime iSelectedTimeStart; + // AO: Connection ending time + TTime iSelectedTimeStop; + // AO: Inbox refresh interval in minutes + TInt iInboxRefreshTime; + // AO: + TMailAoUpdateModes iUpdateMode; + // AO: + TAOInfo iLastUpdateInfo; + // AO: + TBuf<1600>* iEmailAddress; // Temporary + // EMN: + TMailEmnStates iEmnState; + // Common: mail deletion behaviour + TIMASMailDeletionMode iMailDeletion; + + }; + +#endif // CImumMboxDataExtension_H + +// End of File