diff -r 000000000000 -r 8466d47a6819 emailuis/uicomponents/inc/fstextviewerlayouter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/uicomponents/inc/fstextviewerlayouter.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,105 @@ +/* +* 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: Visual aligning class +* +*/ + + +#ifndef C_FSTEXTVIEWERLAYOUTER_H +#define C_FSTEXTVIEWERLAYOUTER_H + +// removed __FS_ALFRED_SUPPORT flag +//#include +// removed __FS_ALFRED_SUPPORT flag +#include +#include + +class CFsTextViewerCoordinator; +class MFsRichTextObject; +class CFsTextViewerVisualizerData; +class TFsRangedVisual; +class CWsScreenDevice; +class CAlfLayout; +class CFsRichText; +class CAlfEnv; +class CFsTextParser; +class CFsTextViewerVisualizer; + +class CFsTextViewerLayouter : public CBase + { + public: + static CFsTextViewerLayouter* NewL( CAlfEnv* aEnv ); + ~CFsTextViewerLayouter(); + + public: + TInt MeasureBidiTextBoundsWidth( + const CFont& aFont, + const TDesC& aText, + CFont::TMeasureTextInput::TFlags aOrder); + TSize CalculateSizeL( MFsRichTextObject* aObject ); + TInt FindMaxLengthL( MFsRichTextObject* aObject ); + TFsRangedVisual* PrepareRangedVisL( + MFsRichTextObject* aObject, + CAlfLayout* aLayout ); + void SetDisplaySize( TSize aDisplaySize ); + TBool AppendObjectL( MFsRichTextObject* aObject, CAlfLayout* aLayout, CFsTextParser* aParser, TBool aRegisterSelects = ETrue ); + TBool InsertObjectL( MFsRichTextObject* aObject, CAlfLayout* aLayout, CFsTextParser* aParser, TBool aRegisterSelects = ETrue ); + void ConstructLineL( TInt aHeight = 1 ); + void SetMargins( const TInt aLeft, const TInt aRight ); + void SetHelper( CFsTextViewerCoordinator* aHelper ); + void SetNavigator( CFsTextViewerVisualizerData* aNavigator ); + TInt Lines(); + void EnableSmileys( TBool aEnable = ETrue ); + void SetPosition( TInt aLine, TInt aLineOffset ); + void ChangeDirection( TBidiText::TDirectionality aDirection ); + void SetDirection( TBidiText::TDirectionality aDirection ); + TBidiText::TDirectionality GetDirection(); + void JoinRangedVisuals( TFsRangedVisual* aFirst, TFsRangedVisual* aSecond ); + TInt GetCurrentLineOffset(); + void SetCurrentLineOffset( TInt aOffset ); + TBool IsNewLine(); + + private: + void ConstructL(); + CFsTextViewerLayouter( CAlfEnv* aEnv ); + + private: + TBool ReorderLineFromLeftL( MFsRichTextObject* aObject, CAlfLayout* aLayout, CFsTextParser* aParser, TSize aObjectSize, TBool aRegisterSelects = ETrue ); + TBool ReorderLineFromRightL( MFsRichTextObject* aObject, CAlfLayout* aLayout, CFsTextParser* aParser, TSize aObjectSize, TBool aRegisterSelects = ETrue ); + + private: + CFsTextViewerCoordinator* iHelper; + CFsTextViewerVisualizerData* iNavigator; + CWsScreenDevice* iScreenDev; + CFsRichText* iCFsRichText; + TBool iSmileyEnabled; + TSize iDisplaySize; + CAlfEnv* iEnv; + RPointerArray iCurrentLineArray; + TInt iCurrentLineOffset; + TInt iLineHeight; + TInt iLastCol; + TInt iLeftMargin; + TInt iRightMargin; + TInt iLines; + TInt iLowestPicPosition; + TBidiText::TDirectionality iMainDirection; + TBool iNewLine; + + public: + CFsTextViewerVisualizer* iVisualizer; + CAlfControl* iControl; + }; + +#endif //C_FSTEXTVIEWERLAYOUTER_H