email/imum/Utils/Inc/ImumMboxData.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/Utils/Inc/ImumMboxData.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,306 @@
+/*
+* 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: 
+*       Class declaration file
+*
+*/
+
+
+
+
+#ifndef __ImumMboxData_H__
+#define __ImumMboxData_H__
+
+// INCLUDES
+#include <e32std.h>
+#include <msvstd.h>
+#include <cemailaccounts.h>
+#include <iapprefs.h>
+
+#include "Imas.hrh"
+
+// CONSTANTS
+// MACROS
+// DATA TYPES
+
+/**
+* Panics
+*/
+enum TImumImasPanic
+    {
+    EImasPanicInvalidMailbox = 0,
+    EImasPanicNullDbTable,
+    EImasPanicControlNotFound,
+    KImasPanicNoServicesDefined,
+    EImasPanicInvalidSignatureSource,
+    EImasPanicServiceIdsNotCreated,
+    EImasPanicAccountIdsNotCreated,
+    EImasPanicDefaultAccountNotFound,
+    EImasPanicNoSettings,
+    EImasPanicBadEngineSetting,
+    EImasPanicBadListIndex,
+    EImasPanicIdArrayNotNull,
+    EImasPanicUnknownSettings
+
+    };
+
+// FUNCTION PROTOTYPES
+// FORWARD DECLARATIONS
+class CRichText;
+class CParaFormatLayer;
+class CCharFormatLayer;
+class CImSmtpSettings;
+class CImPop3Settings;
+class CImImap4Settings;
+class CImIAPPreferences;
+class CImBaseEmailSettings;
+class CImumMboxDataExtension;
+GLREF_C void ImasPanic( TImumImasPanic aCode );
+
+// CLASS DECLARATION
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// ACCOUNT SETTINGS DATA
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+*  ?one_line_short_description.
+*  ?other_description_lines
+*
+*  @lib Imum.lib
+*  @since S60 3.0
+*/
+class CMsvImailSignature : public CBase
+    {
+    public:
+
+        /**
+        * CMsvImailSignature
+        */
+        CMsvImailSignature();
+
+        /**
+        * CMsvImailSignature
+        * @param CRichText*
+        * @param CParaFormatLayer*
+        * @param CCharFormatLayer*
+        */
+        CMsvImailSignature(
+            CRichText* aRichText,
+            CParaFormatLayer* aParaFormat,
+            CCharFormatLayer* aCharFormat );
+
+        /**
+        * ~CMsvImailSignature
+        * Destructor
+        */
+        ~CMsvImailSignature();
+
+        /**
+        * CopyL
+        * @param CMsvImailSignature&
+        */
+        void CopyL(const CMsvImailSignature& aSignature);
+
+        /**
+        * CreateEmptyRichTextL
+        */
+        void CreateEmptyRichTextL();
+
+    public:
+        CRichText* iRichText;
+        CParaFormatLayer* iParaFormatLayer;
+        CCharFormatLayer* iCharFormatLayer;
+    };
+
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+* class CImumMboxData
+*
+*/
+class CImumMboxData : public CBase
+    {
+    public:
+
+        /**
+        * NewL function to create settings
+        * @since S60 2.0
+        */
+        static CImumMboxData* NewL();
+
+        /**
+        * NewLC function to create settings
+        * @since S60 2.0
+        */
+        static CImumMboxData* NewLC();
+
+        /**
+        * NewL function to create POP3 settings
+        * @since S60 3.0
+        * @param aName, name
+        * @param aSmtpSettings, pointer to smtp settings
+        * @param aPop3Settings, pointer to pop3 settings
+        * @return Pointer to settings
+        */
+        static CImumMboxData* NewL(
+            const TDesC& aName,
+            CImSmtpSettings* aSmtpSettings,
+            CImPop3Settings* aPop3Settings,
+            CImumMboxDataExtension* aExtendedSettings = NULL );
+
+        /**
+        * NewLC function to create POP3 settings
+        * @since S60 3.0
+        * @param aName, name
+        * @param aSmtpSettings, pointer to smtp settings
+        * @param aPop3Settings, pointer to pop3 settings
+        * @return Pointer to settings
+        */
+        static CImumMboxData* NewLC(
+            const TDesC& aName,
+            CImSmtpSettings* aSmtpSettings,
+            CImPop3Settings* aPop3Settings,
+            CImumMboxDataExtension* aExtendedSettings = NULL );
+
+        /**
+        * NewL function to create IMAP4 settings
+        * @since S60 3.0
+        * @param aName, name
+        * @param aSmtpSettings, pointer to smtp settings
+        * @param aImap4Settings, pointer to pop3 settings
+        * @return Pointer to settings
+        */
+        static CImumMboxData* NewL(
+            const TDesC& aName,
+            CImSmtpSettings* aSmtpSettings,
+            CImImap4Settings* aImap4Settings,
+            CImumMboxDataExtension* aExtendedSettings = NULL );
+
+        /**
+        * NewLC function to create IMAP4 settings
+        * @since S60 3.0
+        * @param aName, name
+        * @param aSmtpSettings, pointer to smtp settings
+        * @param aImap4Settings, pointer to pop3 settings
+        * @return Pointer to settings
+        */
+        static CImumMboxData* NewLC(
+            const TDesC& aName,
+            CImSmtpSettings* aSmtpSettings,
+            CImImap4Settings* aImap4Settings,
+            CImumMboxDataExtension* aExtendedSettings = NULL );
+
+        /**
+        * ~CImumMboxData
+        */
+        ~CImumMboxData();
+
+        /**
+        * CopyL
+        * @param CImumMboxData&, settings reference
+        */
+        void CopyL( const CImumMboxData& aSettings );
+
+        /**
+        * RelatedMtmSettings
+        * @return settings reference
+        */
+        CImBaseEmailSettings& RelatedMtmSettings() const;
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void InitializeL();
+
+        /**
+        *
+        * @since S60
+        * @return
+        */
+        void Clean();
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        TBool IsOk() const;
+
+    protected:
+
+        /**
+        * CImumMboxData
+        */
+        CImumMboxData();
+
+        /**
+        * CImumMboxData
+        * @since S60 3.0
+        * @param TDesC&, name
+        * @param CImSmtpSettings*, smtp settings
+        * @param CImPop3Settings*, pop3 settings
+        * @param CImImap4Settings*, imap4 settings
+        */
+        CImumMboxData(
+            const TDesC& aName,
+            CImSmtpSettings* aSmtpSettings,
+            CImPop3Settings* aPop3Settings,
+            CImImap4Settings* aImap4Settings,
+            CImumMboxDataExtension* aExtendedSettings );
+
+        /**
+        * ConstructL
+        * @since S60
+        */
+        void ConstructL();
+
+    public: // Data
+
+        // Common settings
+        TBool                       iIsImap4;
+        TBuf<KImasImailServiceNameLength> iName;
+        CMsvImailSignature*         iSignature;
+        TMsvId                      iMailboxId;
+        TMsvId                      iDefaultAccountId;
+
+        // IMAP4 settings
+        CImImap4Settings*           iImap4Settings;
+        TImapAccount                iImap4AccountId;
+
+        // POP3 settings
+        CImPop3Settings*            iPop3Settings;
+        TPopAccount                 iPop3AccountId;
+
+        // SMTP settings
+        CImSmtpSettings*            iSmtpSettings;
+
+        // Extra settings
+        CImumMboxDataExtension*     iExtendedSettings;
+
+        // Internet Access Point settings
+        //  - Incoming server
+        TUint32                     iIncomingIap;
+        TCommDbDialogPref           iIncomingDialogPref;
+        CImIAPPreferences*          iIncomingIapPref;
+        //  - Incoming server
+        TUint32                     iOutgoingIap;
+        TCommDbDialogPref           iOutgoingDialogPref;
+        CImIAPPreferences*          iOutgoingIapPref;
+
+    };
+
+#endif // __ImumMboxData_H__