00001 /* 00002 * @(#)ContextualGlyphSubstitutionProcessor.h 1.6 00/03/15 00003 * 00004 * (C) Copyright IBM Corp. 1998, 1999, 2000 - All Rights Reserved 00005 * 00006 */ 00007 00008 #ifndef __CONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H 00009 #define __CONTEXTUALGLYPHSUBSTITUTIONPROCESSOR_H 00010 00011 #include "LETypes.h" 00012 #include "MorphTables.h" 00013 #include "SubtableProcessor.h" 00014 #include "StateTableProcessor.h" 00015 #include "ContextualGlyphSubstitution.h" 00016 00017 class ContextualGlyphSubstitutionProcessor : public StateTableProcessor 00018 { 00019 public: 00020 virtual void beginStateTable(); 00021 00022 virtual ByteOffset processStateEntry(LEGlyphID *glyphs, le_int32 *charIndices, le_int32 &currGlyph, 00023 le_int32 glyphCount, EntryTableIndex index); 00024 00025 virtual void endStateTable(); 00026 00027 ContextualGlyphSubstitutionProcessor(MorphSubtableHeader *morphSubtableHeader); 00028 virtual ~ContextualGlyphSubstitutionProcessor(); 00029 00030 private: 00031 ContextualGlyphSubstitutionProcessor(); 00032 00033 protected: 00034 ByteOffset substitutionTableOffset; 00035 ContextualGlyphSubstitutionStateEntry *entryTable; 00036 00037 le_int32 markGlyph; 00038 00039 ContextualGlyphSubstitutionHeader *contextualGlyphSubstitutionHeader; 00040 }; 00041 00042 #endif