sl@0: /* sl@0: * sl@0: * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved sl@0: * sl@0: */ sl@0: sl@0: #ifndef __GLYPHPOSITIONINGTABLES_H sl@0: #define __GLYPHPOSITIONINGTABLES_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 LEFontInstance; sl@0: class LEGlyphStorage; sl@0: class LEGlyphFilter; sl@0: class GlyphPositionAdjustments; sl@0: struct GlyphDefinitionTableHeader; sl@0: sl@0: struct GlyphPositioningTableHeader : public GlyphLookupTableHeader sl@0: { sl@0: void process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments, sl@0: le_bool rightToLeft, LETag scriptTag, LETag languageTag, sl@0: const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, sl@0: LEErrorCode &success, sl@0: const LEFontInstance *fontInstance, const LETag *featureOrder) const; sl@0: }; sl@0: sl@0: enum GlyphPositioningSubtableTypes sl@0: { sl@0: gpstSingle = 1, sl@0: gpstPair = 2, sl@0: gpstCursive = 3, sl@0: gpstMarkToBase = 4, sl@0: gpstMarkToLigature = 5, sl@0: gpstMarkToMark = 6, sl@0: gpstContext = 7, sl@0: gpstChainedContext = 8, sl@0: gpstExtension = 9 sl@0: }; sl@0: sl@0: typedef LookupSubtable GlyphPositioningSubtable; sl@0: sl@0: U_NAMESPACE_END sl@0: #endif