sl@0: // Copyright (c) 1998-2010 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 <e32base.h>
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__