00001 /* 00002 * @(#)IndicRearrangementProcessor.h 1.6 00/03/15 00003 * 00004 * (C) Copyright IBM Corp. 1998, 1999, 2000 - All Rights Reserved 00005 * 00006 */ 00007 00008 #ifndef __INDICREARRANGEMENTPROCESSOR_H 00009 #define __INDICREARRANGEMENTPROCESSOR_H 00010 00011 #include "LETypes.h" 00012 #include "MorphTables.h" 00013 #include "SubtableProcessor.h" 00014 #include "StateTableProcessor.h" 00015 #include "IndicRearrangement.h" 00016 00017 class IndicRearrangementProcessor : 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 void doRearrangementAction(LEGlyphID *glyphs, le_int32 *charIndices, IndicRearrangementVerb verb); 00028 00029 IndicRearrangementProcessor(MorphSubtableHeader *morphSubtableHeader); 00030 virtual ~IndicRearrangementProcessor(); 00031 00032 protected: 00033 le_int32 firstGlyph; 00034 le_int32 lastGlyph; 00035 00036 IndicRearrangementStateEntry *entryTable; 00037 IndicRearrangementSubtableHeader *indicRearrangementSubtableHeader; 00038 }; 00039 00040 #endif