diff -r 000000000000 -r 8466d47a6819 emailuis/emailui/inc/ncsutility.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/emailui/inc/ncsutility.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,182 @@ +/* +* Copyright (c) 2007 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: This file defines class NcsUtility. +* +*/ + + + +#ifndef NCSUTILITY_H +#define NCSUTILITY_H + +#include +#include "CFSMailCommon.h" +// +#include "ncsaddressinputfield.h" +// + +class CNcsEmailAddressObject; +class CFSMailAddress; +class CEikImage; +class CFbsBitmap; +class CFSMailMessage; +class CFSMailBox; +class CFSMailClient; +// Platform layout change +class CEikLabel; +class CEikEdwin; +class CAknButton; +class CCoeControl; +// Platform layout change + +struct TNcsMeasures + { + TInt iAifHeight; + TInt iAifLabelMarginVertical; + TInt iAifEditorMarginVertical; + TInt iAifEditorHeight; + TInt iSubjectExtraHeightBottom; + TInt iAttachmentExtraHeightBottom; + TInt iIconMarginPriorityVertical; + TInt iIconMarginFollowUpVertical; + TInt iIconMarginAttachmentVertical; + TInt iLabelFontHeightPx; + TInt iEditorFontHeightPx; + }; + + +/** +* NcsUtility class. +*/ +class NcsUtility + { +// Platform layout changes +public: + enum THeaderDetailIcon + { + EIconFront, + EIconBack + }; +// Platform layout changes + +public: + static void CompleteRelativePathL( const TDesC& aRelativePath, TPtr& aAbsolutePath ); + + static HBufC* GenerateFromLineToMessageBodyL( const RPointerArray& aFromArray ); + + static HBufC* GenerateSentLineToMessageBodyL( CFSMailMessage& aMessage ); + + enum TRecipientType { ERecipientTypeTo, ERecipientTypeCc /*, ERecipientTypeBcc*/ }; + + static HBufC* GenerateAddressLineToMessageBodyL( RPointerArray& aToArray, TRecipientType aType ); + + static HBufC* GenerateSubjectLineToMessageBodyL( const TDesC& aSubject ); + + static CNcsEmailAddressObject* CreateNcsAddressL( const CFSMailAddress& aFsAddress ); + + static CFSMailAddress* CreateFsAddressL( const CNcsEmailAddressObject& aNcsAddress ); + + static HBufC* FormatSubjectLineL( const TDesC& aNewSubjectLine, const TDesC& aPrefix ); + + static void ConvertAddressArrayL( const RPointerArray& aSrc, RPointerArray& aDst ); + + static void ConvertAddressArrayL( const RPointerArray& aSrc, RPointerArray& aDst ); + + static TBool GetAddressesFromPhonebookL( RPointerArray& aAddresses ); + + static void LoadScalableIconL( const TDesC& aMifRelativeFileName, TInt aImgId, TInt aMaskId, CEikImage*& aIcon, CFbsBitmap*& aImage, CFbsBitmap*& aMask ); + + + static void DebugLog( TRefByValue aFmt, ... ); + + static TBool IsEqualAddressArray( const RPointerArray& aAddresses1, + const RPointerArray& aAddresses2 ); + + static TNcsMeasures Measures(); + + static CFont* GetNearestFontL( TInt aLogicalFontId, TInt aHeightPixels ); + +// Platform layout changes + enum TNcsLayoutFont + { + ENcsHeaderCaptionFont, + ENcsHeaderDetailFont, + ENcsBodytextFont + }; + + static const CFont* GetLayoutFont( const TRect& aParent, TNcsLayoutFont aUsage ); +// Platform layout changes + + static TBool IsReplyForwardQuoteReadOnly( const CFSMailBox& aMailBox ); + + static TInt FindFirstPrintableCharIndex( const TDesC& aText ); + + static void ConvertCharacters( TDes& aBuffer, TUint16 aFrom, TUint16 aTo ); + + static void ConvertLineEndingsL( HBufC*& aBuffer ); + + static TInt DeleteMessage( CFSMailClient& aMailClient, + const TFSMailMsgId& aMailBoxId, + const TFSMailMsgId& aFolderId, + const TFSMailMsgId& aMsgId ); + + // Platform layout changes + static TRect HeaderCaptionPaneRect( const TRect& aParent ); + + static TRect HeaderDetailPaneRect( const TRect& aParent, const TInt aRows, TBool aSameRow = EFalse ); + + static TRect HeaderDetailIconRect( const TRect& aParent, const TInt aRows , const THeaderDetailIcon aIcon ); + + static TRect ListscrollPaneRect(); + + static TRect ListCmailPaneRect( const TRect& aParent ); + + static TRect ListCmailScrollbarRect( const TRect& aParent ); + // + static TSize SeparatorSizeInThisResolution(); + static TInt ComposerLeftMarginInPixels( const TRect& aParent ); + static TInt ComposerRightMarginInPixels( const TRect& aParent ); + static TRect ListCmailBodyPaneRect( const TRect& aParent ); + + static void LayoutCaptionLabel( CEikLabel* aLabel, const TRect& aParentRect ); + + // + static void LayoutCaptionButton( CAknButton* aButton, const TRect& aParentRect); + // + static void LayoutDetailLabel( CEikLabel* aLabel, const TRect& aParentRect ); + + static void LayoutDetailEdwin( CEikEdwin* aEdwin, const TRect& aParentRect, const TInt aLineCount, const TBool aBackIcon ); + // + static void LayoutDetailEdwinTouch( CEikEdwin* aEdwin, const TRect& aParentRect, + const TInt aLineCount, const TBool aBackIcon ); + // + static TPoint HeaderControlPosition( const TRect& aParentRect, const TInt aCurrentLine ); + + static void LayoutHeaderControl( CCoeControl* aControl, const TRect& aParentRect, const TInt aCurrentLine, const TInt aNumberOfLines ); + // + static void LayoutBodyEdwin( CEikEdwin* aEdwin, const TRect& aParentRect, const TInt aCurrentLine, const TInt aNumberOfLines, + TInt& aSeparatorYPosition ); + static TRgb CalculateSeparatorLineSecondaryColor( TInt aDegree, TRgb aStartColor ); + static TRgb SeparatorLineColor(); + static TRgb CalculateMsgBodyLineColor( TInt aDegree, TRgb aBaseColor ); + +private: + static HBufC* DoGenerateAddressLineToMessageBodyL( TInt aLabelResourceId, + const RPointerArray& aAddressArray ); + }; + +#endif // TNCSUTILITY_H + + +// End of File