sl@0: /* sl@0: * sl@0: * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved sl@0: * sl@0: */ sl@0: sl@0: #ifndef __STATETABLES_H sl@0: #define __STATETABLES_H sl@0: sl@0: /** sl@0: * \file sl@0: * \internal sl@0: */ sl@0: sl@0: #include "LETypes.h" sl@0: #include "LayoutTables.h" sl@0: sl@0: U_NAMESPACE_BEGIN sl@0: sl@0: struct StateTableHeader sl@0: { sl@0: le_int16 stateSize; sl@0: ByteOffset classTableOffset; sl@0: ByteOffset stateArrayOffset; sl@0: ByteOffset entryTableOffset; sl@0: }; sl@0: sl@0: enum ClassCodes sl@0: { sl@0: classCodeEOT = 0, sl@0: classCodeOOB = 1, sl@0: classCodeDEL = 2, sl@0: classCodeEOL = 3, sl@0: classCodeFirstFree = 4, sl@0: classCodeMAX = 0xFF sl@0: }; sl@0: sl@0: typedef le_uint8 ClassCode; sl@0: sl@0: struct ClassTable sl@0: { sl@0: TTGlyphID firstGlyph; sl@0: le_uint16 nGlyphs; sl@0: ClassCode classArray[ANY_NUMBER]; sl@0: }; sl@0: sl@0: enum StateNumber sl@0: { sl@0: stateSOT = 0, sl@0: stateSOL = 1, sl@0: stateFirstFree = 2, sl@0: stateMAX = 0xFF sl@0: }; sl@0: sl@0: typedef le_uint8 EntryTableIndex; sl@0: sl@0: struct StateEntry sl@0: { sl@0: ByteOffset newStateOffset; sl@0: le_int16 flags; sl@0: }; sl@0: sl@0: U_NAMESPACE_END sl@0: #endif sl@0: