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