sl@0: /*
sl@0:  *
sl@0:  * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
sl@0:  *
sl@0:  */
sl@0: 
sl@0: #ifndef __CLASSDEFINITIONTABLES_H
sl@0: #define __CLASSDEFINITIONTABLES_H
sl@0: 
sl@0: /**
sl@0:  * \file
sl@0:  * \internal
sl@0:  */
sl@0: 
sl@0: #include "LETypes.h"
sl@0: #include "OpenTypeTables.h"
sl@0: 
sl@0: U_NAMESPACE_BEGIN
sl@0: 
sl@0: struct ClassDefinitionTable
sl@0: {
sl@0:     le_uint16 classFormat;
sl@0: 
sl@0:     le_int32  getGlyphClass(LEGlyphID glyphID) const;
sl@0:     le_bool   hasGlyphClass(le_int32 glyphClass) const;
sl@0: };
sl@0: 
sl@0: struct ClassDefFormat1Table : ClassDefinitionTable
sl@0: {
sl@0:     TTGlyphID  startGlyph;
sl@0:     le_uint16  glyphCount;
sl@0:     le_uint16  classValueArray[ANY_NUMBER];
sl@0: 
sl@0:     le_int32 getGlyphClass(LEGlyphID glyphID) const;
sl@0:     le_bool  hasGlyphClass(le_int32 glyphClass) const;
sl@0: };
sl@0: 
sl@0: struct ClassRangeRecord
sl@0: {
sl@0:     TTGlyphID start;
sl@0:     TTGlyphID end;
sl@0:     le_uint16 classValue;
sl@0: };
sl@0: 
sl@0: struct ClassDefFormat2Table : ClassDefinitionTable
sl@0: {
sl@0:     le_uint16        classRangeCount;
sl@0:     GlyphRangeRecord classRangeRecordArray[ANY_NUMBER];
sl@0: 
sl@0:     le_int32 getGlyphClass(LEGlyphID glyphID) const;
sl@0:     le_bool hasGlyphClass(le_int32 glyphClass) const;
sl@0: };
sl@0: 
sl@0: U_NAMESPACE_END
sl@0: #endif