fontservices/textbase/inc/gdiplatapi.h
author hgs
Mon, 12 Jul 2010 14:38:26 +0800
changeset 45 662fa7de7023
permissions -rw-r--r--
201024_05
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
662fa7de7023 201024_05
hgs
parents:
diff changeset
     1
// Copyright (c) 1998-2010 Nokia Corporation and/or its subsidiary(-ies).
662fa7de7023 201024_05
hgs
parents:
diff changeset
     2
// All rights reserved.
662fa7de7023 201024_05
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
662fa7de7023 201024_05
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
662fa7de7023 201024_05
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
662fa7de7023 201024_05
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
662fa7de7023 201024_05
hgs
parents:
diff changeset
     7
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
     8
// Initial Contributors:
662fa7de7023 201024_05
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
662fa7de7023 201024_05
hgs
parents:
diff changeset
    10
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    11
// Contributors:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    12
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    13
// Description:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    14
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    15
662fa7de7023 201024_05
hgs
parents:
diff changeset
    16
#ifndef __GDIPLATAPI_H__
662fa7de7023 201024_05
hgs
parents:
diff changeset
    17
#define __GDIPLATAPI_H__
662fa7de7023 201024_05
hgs
parents:
diff changeset
    18
662fa7de7023 201024_05
hgs
parents:
diff changeset
    19
#include <e32base.h>
662fa7de7023 201024_05
hgs
parents:
diff changeset
    20
662fa7de7023 201024_05
hgs
parents:
diff changeset
    21
/*
662fa7de7023 201024_05
hgs
parents:
diff changeset
    22
 * Please note that RFontTable API is officially supported from SymTB10.1.
662fa7de7023 201024_05
hgs
parents:
diff changeset
    23
 * It is not guaranteed to work in SymTB9.2 or earlier.
662fa7de7023 201024_05
hgs
parents:
diff changeset
    24
 * 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    25
 * The class keeps the parameter 'aFont', and will use it in Close(). 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    26
 * Destructing the CFont object before calling Close() can result in Panic.
662fa7de7023 201024_05
hgs
parents:
diff changeset
    27
 * 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    28
 * @publishedPartner
662fa7de7023 201024_05
hgs
parents:
diff changeset
    29
 */
662fa7de7023 201024_05
hgs
parents:
diff changeset
    30
class RFontTable 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    31
    {
662fa7de7023 201024_05
hgs
parents:
diff changeset
    32
public:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    33
    IMPORT_C RFontTable();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    34
    IMPORT_C TInt Open(CFont& aFont, TUint32 aTag);
662fa7de7023 201024_05
hgs
parents:
diff changeset
    35
    IMPORT_C TInt TableLength() const;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    36
    IMPORT_C const TUint8* TableContent() const;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    37
    IMPORT_C void Close();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    38
private:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    39
    TAny* iTableContent;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    40
    TInt iLength;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    41
    
662fa7de7023 201024_05
hgs
parents:
diff changeset
    42
    // need to remember font and table name, to be used in releasing the table
662fa7de7023 201024_05
hgs
parents:
diff changeset
    43
    const CFont* iFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    44
    TUint32 iTag;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    45
    };
662fa7de7023 201024_05
hgs
parents:
diff changeset
    46
662fa7de7023 201024_05
hgs
parents:
diff changeset
    47
662fa7de7023 201024_05
hgs
parents:
diff changeset
    48
/*
662fa7de7023 201024_05
hgs
parents:
diff changeset
    49
 * Please note that RGlyphOutlineIterator API is officially supported 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    50
 * from SymTB10.1. It is not guaranteed to work in SymTB9.2 or earlier.
662fa7de7023 201024_05
hgs
parents:
diff changeset
    51
 * 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    52
 * The class keeps the parameter 'aFont', and will use it in Close(). 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    53
 * Destructing the CFont object before calling Close() can result in Panic.
662fa7de7023 201024_05
hgs
parents:
diff changeset
    54
 * 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    55
 * @publishedPartner
662fa7de7023 201024_05
hgs
parents:
diff changeset
    56
 */
662fa7de7023 201024_05
hgs
parents:
diff changeset
    57
class RGlyphOutlineIterator 
662fa7de7023 201024_05
hgs
parents:
diff changeset
    58
    {
662fa7de7023 201024_05
hgs
parents:
diff changeset
    59
public:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    60
    IMPORT_C RGlyphOutlineIterator();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    61
    IMPORT_C TInt Open(CFont& aFont, const TUint* aCodes, TInt aCount, TBool aHinted = EFalse);
662fa7de7023 201024_05
hgs
parents:
diff changeset
    62
    IMPORT_C TInt Next();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    63
    IMPORT_C const TUint8 *Outline() const;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    64
    IMPORT_C TInt OutlineLength() const;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    65
    IMPORT_C void Close();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    66
private:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    67
    TAny** iOutlines;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    68
    TInt* iLengths;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    69
    TInt iCursor;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    70
    TInt iCount;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    71
    
662fa7de7023 201024_05
hgs
parents:
diff changeset
    72
    // these information is needed in Close().
662fa7de7023 201024_05
hgs
parents:
diff changeset
    73
    const CFont* iFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    74
    TUint* iCodes;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    75
    TBool iHinted;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    76
    };
662fa7de7023 201024_05
hgs
parents:
diff changeset
    77
662fa7de7023 201024_05
hgs
parents:
diff changeset
    78
662fa7de7023 201024_05
hgs
parents:
diff changeset
    79
#endif __GDIPLATAPI_H__