1 /*
2  * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
3  *
4  */
5 
6 #ifndef __GLYPHPOSITIONINGTABLES_H
7 #define __GLYPHPOSITIONINGTABLES_H
8 
9 /**
10  * \file
11  * \internal
12  */
13 
14 #include "LETypes.h"
15 #include "OpenTypeTables.h"
16 #include "Lookups.h"
17 #include "GlyphLookupTables.h"
18 #include "LETableReference.h"
19 
20 U_NAMESPACE_BEGIN
21 
22 class  LEFontInstance;
23 class  LEGlyphStorage;
24 class  LEGlyphFilter;
25 class  GlyphPositionAdjustments;
26 struct GlyphDefinitionTableHeader;
27 
28 struct GlyphPositioningTableHeader : public GlyphLookupTableHeader
29 {
30   void    process(const LEReferenceTo<GlyphPositioningTableHeader> &base, LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
31                 le_bool rightToLeft, LETag scriptTag, LETag languageTag,
32                 const LEReferenceTo<GlyphDefinitionTableHeader> &glyphDefinitionTableHeader, LEErrorCode &success,
33                 const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
34 };
35 
36 enum GlyphPositioningSubtableTypes
37 {
38     gpstSingle          = 1,
39     gpstPair            = 2,
40     gpstCursive         = 3,
41     gpstMarkToBase      = 4,
42     gpstMarkToLigature  = 5,
43     gpstMarkToMark      = 6,
44     gpstContext         = 7,
45     gpstChainedContext  = 8,
46     gpstExtension       = 9
47 };
48 
49 typedef LookupSubtable GlyphPositioningSubtable;
50 
51 U_NAMESPACE_END
52 #endif
53