Home | History | Annotate | Download | only in layout
      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 
     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(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 
     40 enum 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 
     52 typedef LookupSubtable GlyphSubstitutionSubtable;
     53 
     54 U_NAMESPACE_END
     55 #endif
     56