1 /* 2 * (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved 3 * 4 */ 5 6 #ifndef __GLYPHPOSITIONINGTABLES_H 7 #define __GLYPHPOSITIONINGTABLES_H 8 9 /** 10 * \file 11 * \internal 12 */ 13 14 #include "LETypes.h" 15 #include "OpenTypeTables.h" 16 #include "Lookups.h" 17 #include "GlyphLookupTables.h" 18 19 U_NAMESPACE_BEGIN 20 21 class LEFontInstance; 22 class LEGlyphStorage; 23 class LEGlyphFilter; 24 class GlyphPositionAdjustments; 25 struct GlyphDefinitionTableHeader; 26 27 struct GlyphPositioningTableHeader : public GlyphLookupTableHeader 28 { 29 void process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments, 30 le_bool rightToLeft, LETag scriptTag, LETag languageTag, 31 const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, LEErrorCode &success, 32 const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const; 33 }; 34 35 enum GlyphPositioningSubtableTypes 36 { 37 gpstSingle = 1, 38 gpstPair = 2, 39 gpstCursive = 3, 40 gpstMarkToBase = 4, 41 gpstMarkToLigature = 5, 42 gpstMarkToMark = 6, 43 gpstContext = 7, 44 gpstChainedContext = 8, 45 gpstExtension = 9 46 }; 47 48 typedef LookupSubtable GlyphPositioningSubtable; 49 50 U_NAMESPACE_END 51 #endif 52