1/*
2 *
3 * (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
4 *
5 */
6
7#ifndef __GLYPHSUBSTITUTIONTABLES_H
8#define __GLYPHSUBSTITUTIONTABLES_H
9
10/**
11 * \file
12 * \internal
13 */
14
15#include "LETypes.h"
16#include "OpenTypeTables.h"
17#include "Lookups.h"
18#include "GlyphLookupTables.h"
19
20U_NAMESPACE_BEGIN
21
22class  LEGlyphStorage;
23class  LEGlyphFilter;
24struct GlyphDefinitionTableHeader;
25
26struct GlyphSubstitutionTableHeader : public GlyphLookupTableHeader
27{
28    le_int32    process(LEGlyphStorage &glyphStorage,
29                        le_bool rightToLeft,
30                        LETag scriptTag,
31                        LETag languageTag,
32                        const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
33                        const LEGlyphFilter *filter,
34                        const FeatureMap *featureMap,
35                        le_int32 featureMapCount,
36                        le_bool featureOrder,
37                        LEErrorCode &success) const;
38};
39
40enum GlyphSubstitutionSubtableTypes
41{
42    gsstSingle          = 1,
43    gsstMultiple        = 2,
44    gsstAlternate       = 3,
45    gsstLigature        = 4,
46    gsstContext         = 5,
47    gsstChainingContext = 6,
48    gsstExtension       = 7,
49    gsstReverseChaining = 8
50};
51
52typedef LookupSubtable GlyphSubstitutionSubtable;
53
54U_NAMESPACE_END
55#endif
56