• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * (C) Copyright IBM Corp. 1998-2008 - 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 
19 U_NAMESPACE_BEGIN
20 
21 class  LEFontInstance;
22 class  LEGlyphStorage;
23 class  LEGlyphFilter;
24 class  GlyphPositionAdjustments;
25 struct GlyphDefinitionTableHeader;
26 
27 struct GlyphPositioningTableHeader : public GlyphLookupTableHeader
28 {
29     void    process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
30                 le_bool rightToLeft, LETag scriptTag, LETag languageTag,
31                 const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, LEErrorCode &success,
32                 const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
33 };
34 
35 enum GlyphPositioningSubtableTypes
36 {
37     gpstSingle          = 1,
38     gpstPair            = 2,
39     gpstCursive         = 3,
40     gpstMarkToBase      = 4,
41     gpstMarkToLigature  = 5,
42     gpstMarkToMark      = 6,
43     gpstContext         = 7,
44     gpstChainedContext  = 8,
45     gpstExtension       = 9
46 };
47 
48 typedef LookupSubtable GlyphPositioningSubtable;
49 
50 U_NAMESPACE_END
51 #endif
52