mobilemessaging/mmsui/viewerinc/MmsViewerHeader.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mobilemessaging/mmsui/viewerinc/MmsViewerHeader.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,192 @@
+/*
+* Copyright (c) 2005-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:  
+*       MMS viewer header.
+*
+*/
+
+
+
+#ifndef __MMSVIEWERHEADER_H
+#define __MMSVIEWERHEADER_H
+
+// INCLUDES
+
+#include <mmsclient.h>
+#include <MsgEditorView.h>
+#include <unibaseheader.h>  
+#include <muiumsvuiserviceutilitiesinternal.h> // TMuiuAddressType
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+class CMsgAddressControl;
+class CMsgExpandableControl;
+class CUniObjectList;
+
+// CLASS DECLARATION
+
+// ==========================================================
+
+/**
+* 
+*/
+class CMmsViewerHeader : public CUniBaseHeader
+    {
+    public:  // Constructor and destructor
+
+        /**
+        * Two-phased constructor.
+        * @param aParent parent control
+        * @param aFlags display flags - by default editor state
+        * @return new object
+        */
+        static CMmsViewerHeader* NewL(
+            CMmsClientMtm& aMtm,
+            CUniObjectList& aAttachmentList,
+            CMsgEditorView& aView,
+            RFs& aFs );
+
+        /**
+        * Destructor.
+        */
+        ~CMmsViewerHeader();
+
+        inline TMuiuAddressType SenderType();
+
+        inline HBufC* Alias();
+
+        /**
+        * Due to infamous Japanese pictographs in subject field showing 
+        * transparently even on slides 2,3...etc, function is used to remove
+        * subject text when subject is visible and to the slide N is moved from slide 1
+        */
+        void RemoveSubjectContentL( );
+
+        /**
+        * Due to infamous Japanese pictographs in subject field showing 
+        * transparently even on slides 2,3...etc, function is used to restore
+        * subject when slide 1 is entered from slide N.
+        */
+        void RestoreSubjectContentL( );
+
+        /**
+        * Removes attachment field. When attachments view is removed separately, unnecessary
+        * focus movements to attachment filed can be avoided e.g. in connection of forwarding
+        * message. 
+        */
+        void RemoveAttachmentL( );
+
+        /**
+        * @return ETrue, if sender has alias in its address AND the alias is remote alias.
+        */
+        inline TBool IsRemoteAlias();
+
+    private: // Constructors
+
+        /**
+        * Hidden C++ default constructor.
+        */
+        CMmsViewerHeader(
+            CMmsClientMtm& aMtm,
+            CUniObjectList& aAttachmentList,
+            CMsgEditorView& aView,
+            RFs& aFs );
+
+        /**
+        * By default Symbian constructor is private.
+        */
+        void ConstructL( );
+        
+        /**
+        * Create UI control for from field. Base implementation is empty
+        * @param aReadContent determines whether recipient data is read from
+        *        MTM
+        */
+        void InsertFromL( TBool aReadContent );
+
+        /**
+        * Creates UI control for subject
+        * @param aReadContent determines whether content is read to the
+        *        UI control from MTM.
+        *        Reading is not needed, if control is added by user selection
+        */
+        void InsertSubjectL(TBool aReadContent );
+
+        /**
+        * Create UI control for recipient.
+        * @param aData data area for this recipient type
+        * @param aResource resource to read basic recipient data from
+        * @param aReadContent determines whether recipient data is read from
+        *        MTM
+        */
+        void InsertRecipientL(  TAddressData&  aData,
+                                THeaderFields  aRecipientType,
+                                TBool          aReadContent);
+
+        /**
+        * Create UI control for recipient.
+        * @param aData data area for this recipient type
+        * @param aResource resource to read basic recipient data from
+        * @param aReadContent determines whether recipient data is read from
+        *        MTM
+        * @param aAddHeadersRecipientType recipient type to be added as EUniFeature*      
+        */
+        void DoInsertRecipientL(    TAddressData&   aData,
+                                    TInt            aResource,
+                                    TBool           aReadContent,
+                                    TInt            aAddHeadersRecipientType );
+
+        /**
+        * Creates UI control for attachment field
+        * @param aReadContent Determines whether content is read to the UI control.
+        */
+        void InsertAttachmentL( TBool /*aReadContent*/);
+
+    private: //Data
+        TMuiuAddressType iSenderType;
+        HBufC*          iAlias;
+        // Indicates to which field Cc recipients are added, if it is variated Off
+        // In practise only value is EUniFeatureTo 
+        TInt            iAddIntoOtherCc;
+        // Indicates to which field Bcc recipients are added, if it is variated Off
+        // Value is either EUniFeatureTo or EUniFeatureCc
+        TInt            iAddIntoOtherBcc;
+        CUniObjectList& iAttachmentList;
+        TBool           iRemoteAlias;
+    };
+
+inline TMuiuAddressType CMmsViewerHeader::SenderType()
+    {
+    return iSenderType;
+    }
+
+inline HBufC* CMmsViewerHeader::Alias()
+    {
+    return iAlias;
+    }
+
+inline TBool CMmsViewerHeader::IsRemoteAlias()
+    {
+    return iRemoteAlias;
+    }
+
+#endif // __MMSVIEWERHEADER_H