email/imum/Utils/Inc/ImumMboxDataExtension.h
changeset 0 72b543305e3a
--- /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 <e32base.h>
+#include <e32cmn.h>                               // TBuf
+#include <msvstd.h>
+#include <muiuflags.h>
+//#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