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