1 /* 2 * (C) Copyright IBM Corp. 1998-2013 - 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 #include "LETableReference.h" 19 20 U_NAMESPACE_BEGIN 21 22 class LEFontInstance; 23 class LEGlyphStorage; 24 class LEGlyphFilter; 25 class GlyphPositionAdjustments; 26 struct GlyphDefinitionTableHeader; 27 28 struct GlyphPositioningTableHeader : public GlyphLookupTableHeader 29 { 30 void process(const LEReferenceTo<GlyphPositioningTableHeader> &base, LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments, 31 le_bool rightToLeft, LETag scriptTag, LETag languageTag, 32 const LEReferenceTo<GlyphDefinitionTableHeader> &glyphDefinitionTableHeader, LEErrorCode &success, 33 const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const; 34 }; 35 36 enum GlyphPositioningSubtableTypes 37 { 38 gpstSingle = 1, 39 gpstPair = 2, 40 gpstCursive = 3, 41 gpstMarkToBase = 4, 42 gpstMarkToLigature = 5, 43 gpstMarkToMark = 6, 44 gpstContext = 7, 45 gpstChainedContext = 8, 46 gpstExtension = 9 47 }; 48 49 typedef LookupSubtable GlyphPositioningSubtable; 50 51 U_NAMESPACE_END 52 #endif 53