Home | History | Annotate | Download | only in layout
      1 /*
      2  *
      3  * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
      4  *
      5  */
      6 
      7 #ifndef __CLASSDEFINITIONTABLES_H
      8 #define __CLASSDEFINITIONTABLES_H
      9 
     10 /**
     11  * \file
     12  * \internal
     13  */
     14 
     15 #include "LETypes.h"
     16 #include "OpenTypeTables.h"
     17 
     18 U_NAMESPACE_BEGIN
     19 
     20 struct ClassDefinitionTable
     21 {
     22     le_uint16 classFormat;
     23 
     24     le_int32  getGlyphClass(LEGlyphID glyphID) const;
     25     le_bool   hasGlyphClass(le_int32 glyphClass) const;
     26 };
     27 
     28 struct ClassDefFormat1Table : ClassDefinitionTable
     29 {
     30     TTGlyphID  startGlyph;
     31     le_uint16  glyphCount;
     32     le_uint16  classValueArray[ANY_NUMBER];
     33 
     34     le_int32 getGlyphClass(LEGlyphID glyphID) const;
     35     le_bool  hasGlyphClass(le_int32 glyphClass) const;
     36 };
     37 
     38 struct ClassRangeRecord
     39 {
     40     TTGlyphID start;
     41     TTGlyphID end;
     42     le_uint16 classValue;
     43 };
     44 
     45 struct ClassDefFormat2Table : ClassDefinitionTable
     46 {
     47     le_uint16        classRangeCount;
     48     GlyphRangeRecord classRangeRecordArray[ANY_NUMBER];
     49 
     50     le_int32 getGlyphClass(LEGlyphID glyphID) const;
     51     le_bool hasGlyphClass(le_int32 glyphClass) const;
     52 };
     53 
     54 U_NAMESPACE_END
     55 #endif
     56