sl@0: // Copyright (c) 1998-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 __GDIPLATAPI_H__ sl@0: #define __GDIPLATAPI_H__ sl@0: sl@0: #include sl@0: sl@0: /* sl@0: * Please note that RFontTable API is officially supported from SymTB10.1. sl@0: * It is not guaranteed to work in SymTB9.2 or earlier. sl@0: * sl@0: * The class keeps the parameter 'aFont', and will use it in Close(). sl@0: * Destructing the CFont object before calling Close() can result in Panic. sl@0: * sl@0: * @publishedPartner sl@0: */ sl@0: class RFontTable sl@0: { sl@0: public: sl@0: IMPORT_C RFontTable(); sl@0: IMPORT_C TInt Open(CFont& aFont, TUint32 aTag); sl@0: IMPORT_C TInt TableLength() const; sl@0: IMPORT_C const TUint8* TableContent() const; sl@0: IMPORT_C void Close(); sl@0: private: sl@0: TAny* iTableContent; sl@0: TInt iLength; sl@0: sl@0: // need to remember font and table name, to be used in releasing the table sl@0: const CFont* iFont; sl@0: TUint32 iTag; sl@0: }; sl@0: sl@0: sl@0: /* sl@0: * Please note that RGlyphOutlineIterator API is officially supported sl@0: * from SymTB10.1. It is not guaranteed to work in SymTB9.2 or earlier. sl@0: * sl@0: * The class keeps the parameter 'aFont', and will use it in Close(). sl@0: * Destructing the CFont object before calling Close() can result in Panic. sl@0: * sl@0: * @publishedPartner sl@0: */ sl@0: class RGlyphOutlineIterator sl@0: { sl@0: public: sl@0: IMPORT_C RGlyphOutlineIterator(); sl@0: IMPORT_C TInt Open(CFont& aFont, const TUint* aCodes, TInt aCount, TBool aHinted = EFalse); sl@0: IMPORT_C TInt Next(); sl@0: IMPORT_C const TUint8 *Outline() const; sl@0: IMPORT_C TInt OutlineLength() const; sl@0: IMPORT_C void Close(); sl@0: private: sl@0: TAny** iOutlines; sl@0: TInt* iLengths; sl@0: TInt iCursor; sl@0: TInt iCount; sl@0: sl@0: // these information is needed in Close(). sl@0: const CFont* iFont; sl@0: TUint* iCodes; sl@0: TBool iHinted; sl@0: }; sl@0: sl@0: sl@0: #endif __GDIPLATAPI_H__