Home | History | Annotate | Download | only in layout
      1 /*
      2  *
      3  * (C) Copyright IBM Corp. 1998-2013 - 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 
     20 U_NAMESPACE_BEGIN
     21 
     22 class  LEGlyphStorage;
     23 class  LEGlyphFilter;
     24 struct GlyphDefinitionTableHeader;
     25 
     26 struct GlyphSubstitutionTableHeader : public GlyphLookupTableHeader
     27 {
     28   le_int32    process(const LEReferenceTo<GlyphSubstitutionTableHeader> &base,
     29                       LEGlyphStorage &glyphStorage,
     30                         le_bool rightToLeft,
     31                         LETag scriptTag,
     32                         LETag languageTag,
     33                         const LEReferenceTo<GlyphDefinitionTableHeader> &glyphDefinitionTableHeader,
     34                         const LEGlyphFilter *filter,
     35                         const FeatureMap *featureMap,
     36                         le_int32 featureMapCount,
     37                         le_bool featureOrder,
     38                         LEErrorCode &success) 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
     57