sl@0: /*
sl@0:  *
sl@0:  * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
sl@0:  *
sl@0:  */
sl@0: 
sl@0: #ifndef __GLYPHSUBSTITUTIONTABLES_H
sl@0: #define __GLYPHSUBSTITUTIONTABLES_H
sl@0: 
sl@0: /**
sl@0:  * \file
sl@0:  * \internal
sl@0:  */
sl@0: 
sl@0: #include "LETypes.h"
sl@0: #include "OpenTypeTables.h"
sl@0: #include "Lookups.h"
sl@0: #include "GlyphLookupTables.h"
sl@0: 
sl@0: U_NAMESPACE_BEGIN
sl@0: 
sl@0: class  LEGlyphStorage;
sl@0: class  LEGlyphFilter;
sl@0: struct GlyphDefinitionTableHeader;
sl@0: 
sl@0: struct GlyphSubstitutionTableHeader : public GlyphLookupTableHeader
sl@0: {
sl@0:     le_int32    process(LEGlyphStorage &glyphStorage, le_bool rightToLeft, LETag scriptTag, LETag languageTag,
sl@0:                  const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
sl@0:                  LEErrorCode &success,
sl@0:                  const LEGlyphFilter *filter = NULL, const LETag *featureOrder = NULL) const;
sl@0: };
sl@0: 
sl@0: enum GlyphSubstitutionSubtableTypes
sl@0: {
sl@0:     gsstSingle          = 1,
sl@0:     gsstMultiple        = 2,
sl@0:     gsstAlternate       = 3,
sl@0:     gsstLigature        = 4,
sl@0:     gsstContext         = 5,
sl@0:     gsstChainingContext = 6,
sl@0:     gsstExtension       = 7,
sl@0:     gsstReverseChaining = 8
sl@0: };
sl@0: 
sl@0: typedef LookupSubtable GlyphSubstitutionSubtable;
sl@0: 
sl@0: U_NAMESPACE_END
sl@0: #endif