Home | History | Annotate | Download | only in layout
      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