Home | History | Annotate | Download | only in layout
      1 /*
      2  *
      3  * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
      4  *
      5  */
      6 
      7 #ifndef __GLYPHDEFINITIONTABLES_H
      8 #define __GLYPHDEFINITIONTABLES_H
      9 
     10 /**
     11  * \file
     12  * \internal
     13  */
     14 
     15 #include "LETypes.h"
     16 #include "OpenTypeTables.h"
     17 #include "ClassDefinitionTables.h"
     18 
     19 U_NAMESPACE_BEGIN
     20 
     21 typedef ClassDefinitionTable GlyphClassDefinitionTable;
     22 
     23 enum GlyphClassDefinitions
     24 {
     25     gcdNoGlyphClass     = 0,
     26     gcdSimpleGlyph      = 1,
     27     gcdLigatureGlyph    = 2,
     28     gcdMarkGlyph        = 3,
     29     gcdComponentGlyph   = 4
     30 };
     31 
     32 struct AttachmentListTable
     33 {
     34     Offset  coverageTableOffset;
     35     le_uint16  glyphCount;
     36     Offset  attachPointTableOffsetArray[ANY_NUMBER];
     37 };
     38 
     39 struct AttachPointTable
     40 {
     41     le_uint16  pointCount;
     42     le_uint16  pointIndexArray[ANY_NUMBER];
     43 };
     44 
     45 struct LigatureCaretListTable
     46 {
     47     Offset  coverageTableOffset;
     48     le_uint16  ligGlyphCount;
     49     Offset  ligGlyphTableOffsetArray[ANY_NUMBER];
     50 };
     51 
     52 struct LigatureGlyphTable
     53 {
     54     le_uint16  caretCount;
     55     Offset  caretValueTableOffsetArray[ANY_NUMBER];
     56 };
     57 
     58 struct CaretValueTable
     59 {
     60     le_uint16  caretValueFormat;
     61 };
     62 
     63 struct CaretValueFormat1Table : CaretValueTable
     64 {
     65     le_int16   coordinate;
     66 };
     67 
     68 struct CaretValueFormat2Table : CaretValueTable
     69 {
     70     le_uint16  caretValuePoint;
     71 };
     72 
     73 struct CaretValueFormat3Table : CaretValueTable
     74 {
     75     le_int16   coordinate;
     76     Offset  deviceTableOffset;
     77 };
     78 
     79 typedef ClassDefinitionTable MarkAttachClassDefinitionTable;
     80 
     81 struct GlyphDefinitionTableHeader
     82 {
     83     fixed32 version;
     84     Offset  glyphClassDefOffset;
     85     Offset  attachListOffset;
     86     Offset  ligCaretListOffset;
     87     Offset  MarkAttachClassDefOffset;
     88 
     89     const GlyphClassDefinitionTable *getGlyphClassDefinitionTable() const;
     90     const AttachmentListTable *getAttachmentListTable()const ;
     91     const LigatureCaretListTable *getLigatureCaretListTable() const;
     92     const MarkAttachClassDefinitionTable *getMarkAttachClassDefinitionTable() const;
     93 };
     94 
     95 U_NAMESPACE_END
     96 #endif
     97