sl@0: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #ifndef SHAPEINFO_H_ sl@0: #define SHAPEINFO_H_ sl@0: sl@0: #include sl@0: sl@0: class CFont; sl@0: class TDesC16; sl@0: class TShapeHeader; sl@0: sl@0: /** Holds shaping information for text that requires it (for example Indic sl@0: text). sl@0: @publishedAll sl@0: @released sl@0: */ sl@0: class RShapeInfo sl@0: { sl@0: public: sl@0: struct TPoint16 sl@0: { sl@0: TInt16 iX; sl@0: TInt16 iY; sl@0: }; sl@0: IMPORT_C RShapeInfo(); sl@0: TInt Open(const CFont* aFont, const TDesC16& aText, sl@0: TInt aStartOfTextToShape, TInt aEndOfTextToShape, sl@0: TInt aScriptCode, TInt aLanguageCode); sl@0: IMPORT_C void Close(); sl@0: TInt GlyphCount() const; sl@0: const TInt32* Glyphs() const; sl@0: const TPoint16* GlyphPositions() const; sl@0: TPoint16 Advance() const; sl@0: const TInt16* Indices() const; sl@0: TInt EndOfShapedText(); sl@0: IMPORT_C TBool IsOpen(); sl@0: void SetContext(TAny* aContextualProcessFunc); sl@0: TAny* GetContext(); sl@0: private: sl@0: const CFont* iFont; sl@0: const TShapeHeader* iHeader; sl@0: TInt iEndOfShapedText; sl@0: TAny* iContextualProcessFunc; sl@0: }; sl@0: sl@0: #endif