msg_plat/messaging_editor_api/inc/MsgAttachmentInfo.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/msg_plat/messaging_editor_api/inc/MsgAttachmentInfo.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,312 @@
+/*
+* Copyright (c) 2002-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:  MsgAttachmentInfo  declaration
+*
+*/
+
+
+
+#ifndef CMSGATTACHMENTINFO_H
+#define CMSGATTACHMENTINFO_H
+
+// ========== INCLUDE FILES ================================
+
+#include <apmstd.h>
+#include <msvstd.h>
+
+#include <cmsvattachment.h>
+
+// ========== CONSTANTS ====================================
+
+// Farsi takes 14 bytes when attachment has > 1000 bytes
+const TInt KMsgAttaSizeStringLength = 32;
+
+// ========== MACROS =======================================
+
+// ========== DATA TYPES ===================================
+
+// ========== FUNCTION PROTOTYPES ==========================
+
+// ========== FORWARD DECLARATIONS =========================
+
+class CGulIcon;
+class CMsgAttachmentModel;
+
+// ========== CLASS DECLARATION ============================
+
+/**
+* Attachment information node.
+*/
+class CMsgAttachmentInfo : public CBase
+    {
+    public:
+        
+        enum TDRMDataType
+            {
+            ENoLimitations = 0,
+            EForwardLockedOrCombinedDelivery,
+            ESeparateDeliveryValidRights,
+            ECombinedDeliveryInvalidRights,
+            ESeparateDeliveryInvalidRights
+            };
+        
+        /**
+        * Factory method that creates this object.
+        * @param aAttachmentModel
+        * @param aFileName
+        * @param aSize
+        * @param aFetched
+        * @param aAttachedThisSession
+        * @param aAttachmentId
+        * @param aDataType
+        * @param aDRMDataType
+        * @return
+        */
+        static CMsgAttachmentInfo* NewL( CMsgAttachmentModel& aAttachmentModel,
+                                         const TFileName& aFileName,
+                                         TInt aSize,
+                                         TBool Fetched,
+                                         TBool aAttachedThisSession,
+                                         TMsvAttachmentId aAttachmentId, 
+                                         const TDataType& aDataType,
+                                         TDRMDataType aDRMDataType );
+        
+        /**
+        * Destructor.
+        */
+        IMPORT_C ~CMsgAttachmentInfo();
+
+        /**
+        * Returns reference to the filename this attachment represents.
+        * @return
+        */
+        IMPORT_C const TFileName& FileName() const;
+
+        /**
+        * Set the filename of this attachment.
+        * @param aFileName
+        */
+        IMPORT_C void SetFileName( const TFileName& aFileName );
+
+        /**
+        * Returns the size of this attachment.
+        * @return
+        */
+        IMPORT_C TInt Size() const;
+
+        /**
+        * Returns the size of this attachment as a string.
+        * @return
+        */
+        IMPORT_C TBuf<KMsgAttaSizeStringLength> SizeString() const;
+
+        /**
+        * Returns the id of this attachment.
+        * @return
+        */
+        IMPORT_C TMsvAttachmentId AttachmentId() const;
+
+        /**
+        * Sets the id of this attachment.
+        * @param aId
+        */
+        IMPORT_C void SetAttachmentId( TMsvAttachmentId aId );
+
+        /**
+        * Returns ETrue if this attachment is fetched.
+        * @return
+        */
+        IMPORT_C TBool IsFetched() const;
+
+        /**
+        * Sets the fetched attribute of this attachment.
+        * @param aFetched
+        */
+        IMPORT_C void SetFetched( TBool aFetched );
+
+        /**
+        * Returns the datatype (MIME type) of this attachment.
+        * @return
+        */
+        IMPORT_C const TDataType& DataType() const;
+
+        /**
+        * Sets the datatype (MIME type) of this attachment.
+        * @param aDataType
+        */
+        IMPORT_C void SetDataType( const TDataType& aDataType );
+
+        /**
+        * Returns ETrue if this attachment was attached in this session.
+        * @return
+        */
+        IMPORT_C TBool IsAttachedThisSession() const;
+
+        /**
+        * Sets flag which tells if this attachment is attached in this session.
+        * @param aFlag
+        */
+        IMPORT_C void SetAttachedThisSession( TBool aFlag );
+
+        /**
+        * Returns supported flag.
+        * @return
+        */
+        IMPORT_C TBool IsSupported() const;
+
+        /**
+        * Sets supported flag.
+        * @param aFlag
+        */
+        IMPORT_C void SetSupported( TBool aFlag );
+
+        /**
+        * Get icon of this attachment.
+        * @return
+        */
+        IMPORT_C CGulIcon* Icon() const;
+
+        /**
+        * Sets flag if separator line must be drawn before this attachment
+        * in attachment view.
+        * @param aFlag
+        */
+        IMPORT_C void SetSeparator( TBool aFlag );
+
+        /**
+        * Return separator flag.
+        * @return
+        */
+        IMPORT_C TBool IsSeparator() const;
+
+        /**
+        * Sets the DRM (digital rights management) status of this attachment.
+        * @return aDRMDataType
+        */
+        IMPORT_C void SetDRMDataType( TDRMDataType aDRMDataType );
+
+        /**
+        * Returns the DRM (digital rights management) status of this attachment.
+        * @return
+        */
+        IMPORT_C TInt DRMDataType() const;
+        
+        /**
+        * Saves status whether this attachment has been saved into file system
+        * @param aSaved ETrue attachment has been saved
+        *               EFalse attachment has not been saved
+        */
+        IMPORT_C void SetSaved( TBool aSaved );
+        
+        /**
+        * Returns status information whether this attachment has been saved into file system
+        * @param aSaved ETrue attachment has been saved
+        *               EFalse attachment has not been saved
+        */
+        IMPORT_C TBool IsSaved() const;
+        
+        /**
+        * Sets character set for text attachment.
+        * @param aSaved ETrue attachment has been saved
+        *               EFalse attachment has not been saved
+        */
+        inline void SetCharacterSet( TInt aCharConvCharSet );
+        
+        /**
+        * Returns character set of text attachment.
+        * @return character set
+        */
+        inline TInt CharacterSet() const;
+        
+        /**
+        * Sets attachment empty ( i.e. no content is connected to the attachment ).
+        * @param aSaved ETrue attachment has been saved
+        *               EFalse attachment has not been saved
+        */
+        inline void SetEmptyAttachment( TBool aValue );
+        
+        /**
+        * Returns whether attachment is empty.
+        * @return 
+        */
+        inline TBool IsEmptyAttachment();
+        
+    protected:
+
+        /**
+        * Constructor.
+        * @param aAttachmentModel
+        * @param aFileName
+        * @param aSize
+        * @param aFetched
+        * @param aAttachedThisSession
+        */
+        IMPORT_C CMsgAttachmentInfo( CMsgAttachmentModel& aAttachmentModel,
+                                     const TFileName& aFileName,
+                                     TInt aSize,
+                                     TBool aFetched,
+                                     TBool aAttachedThisSession);
+        
+        /**
+        * 2nd phase constructor.
+        * @param aDataType
+        * @param aDRMDataType
+        */
+        IMPORT_C void ConstructL( const TDataType& aDataType,
+                                  TDRMDataType aDRMDataType );
+
+    public:
+        
+        /**
+        * Updates size and icon.
+        */
+        void ChangeSizeAndIconL();
+
+    private:
+    
+        /**
+        * Performs icon updating.
+        */
+        void DoUpdateIconL();
+        
+    private:
+        
+        enum TAttachmentInfoFlags
+            {
+            EAttachmentNoFlagsSet   = 0x00000000,
+            EAttachmentFetched      = 0x00000001,        
+            EAttachedThisSession    = 0x00000002,
+            EAttachmentSupported    = 0x00000004,
+            ESeparatorBefore        = 0x00000008,
+            EAttachmentSaved        = 0x00000010,
+            EEmptyAttachment        = 0x00000020
+            };
+        
+        CMsgAttachmentModel&            iAttachmentModel;
+        TFileName                       iFileName;
+        TInt                            iSize;
+        TMsvAttachmentId                iAttachmentId;
+        TDataType                       iDataType;        
+        TDRMDataType                    iDRMDataType;
+        TBuf<KMsgAttaSizeStringLength>  iSizeString;
+        CGulIcon*                       iIcon;
+        TInt                            iCharset;
+        TInt                            iAttachmentFlags;
+    };
+
+#include "MsgAttachmentInfo.inl"
+
+#endif // CMSGATTACHMENTINFO_H
+
+// End of File