diff -r 000000000000 -r 72b543305e3a mobilemessaging/mmsui/viewerinc/MmsViewerHeader.h --- /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 +#include +#include +#include // 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