]> git.saurik.com Git - apple/icu.git/blob - icuSources/layout/GlyphSubstitutionTables.h
ICU-3.13.tar.gz
[apple/icu.git] / icuSources / layout / GlyphSubstitutionTables.h
1 /*
2 * @(#)GlyphSubstitutionTables.h 1.9 00/03/15
3 *
4 * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
5 *
6 */
7
8 #ifndef __GLYPHSUBSTITUTIONTABLES_H
9 #define __GLYPHSUBSTITUTIONTABLES_H
10
11 /**
12 * \file
13 * \internal
14 */
15
16 #include "LETypes.h"
17 #include "LEGlyphFilter.h"
18 #include "OpenTypeTables.h"
19 #include "Lookups.h"
20 #include "GlyphDefinitionTables.h"
21 #include "GlyphPositionAdjustments.h"
22
23 U_NAMESPACE_BEGIN
24
25 struct GlyphSubstitutionTableHeader
26 {
27 fixed32 version;
28 Offset scriptListOffset;
29 Offset featureListOffset;
30 Offset lookupListOffset;
31
32 void process(LEGlyphID *glyphs, const LETag **glyphTags, le_int32 glyphCount,
33 le_bool rightToLeft, LETag scriptTag, LETag languageTag,
34 const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
35 const LEGlyphFilter *filter = NULL, const LETag *featureOrder = NULL) const;
36
37 le_bool coversScript(LETag scriptTag) const;
38 le_bool coversScriptAndLanguage(LETag scriptTag, LETag languageTag) const;
39 };
40
41 enum GlyphSubstitutionSubtableTypes
42 {
43 gsstSingle = 1,
44 gsstMultiple = 2,
45 gsstAlternate = 3,
46 gsstLigature = 4,
47 gsstContext = 5,
48 gsstChainingContext = 6,
49 gsstExtension = 7,
50 gsstReverseChaining = 8
51 };
52
53 typedef LookupSubtable GlyphSubstitutionSubtable;
54
55 U_NAMESPACE_END
56 #endif