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 19U_NAMESPACE_BEGIN 20 21typedef ClassDefinitionTable GlyphClassDefinitionTable; 22 23enum GlyphClassDefinitions 24{ 25 gcdNoGlyphClass = 0, 26 gcdSimpleGlyph = 1, 27 gcdLigatureGlyph = 2, 28 gcdMarkGlyph = 3, 29 gcdComponentGlyph = 4 30}; 31 32struct AttachmentListTable 33{ 34 Offset coverageTableOffset; 35 le_uint16 glyphCount; 36 Offset attachPointTableOffsetArray[ANY_NUMBER]; 37}; 38 39struct AttachPointTable 40{ 41 le_uint16 pointCount; 42 le_uint16 pointIndexArray[ANY_NUMBER]; 43}; 44 45struct LigatureCaretListTable 46{ 47 Offset coverageTableOffset; 48 le_uint16 ligGlyphCount; 49 Offset ligGlyphTableOffsetArray[ANY_NUMBER]; 50}; 51 52struct LigatureGlyphTable 53{ 54 le_uint16 caretCount; 55 Offset caretValueTableOffsetArray[ANY_NUMBER]; 56}; 57 58struct CaretValueTable 59{ 60 le_uint16 caretValueFormat; 61}; 62 63struct CaretValueFormat1Table : CaretValueTable 64{ 65 le_int16 coordinate; 66}; 67 68struct CaretValueFormat2Table : CaretValueTable 69{ 70 le_uint16 caretValuePoint; 71}; 72 73struct CaretValueFormat3Table : CaretValueTable 74{ 75 le_int16 coordinate; 76 Offset deviceTableOffset; 77}; 78 79typedef ClassDefinitionTable MarkAttachClassDefinitionTable; 80 81struct 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 95U_NAMESPACE_END 96#endif 97