sl@0: /* sl@0: * sl@0: * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved sl@0: * sl@0: */ sl@0: sl@0: #ifndef __GLYPHDEFINITIONTABLES_H sl@0: #define __GLYPHDEFINITIONTABLES_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: #include "ClassDefinitionTables.h" sl@0: sl@0: U_NAMESPACE_BEGIN sl@0: sl@0: typedef ClassDefinitionTable GlyphClassDefinitionTable; sl@0: sl@0: enum GlyphClassDefinitions sl@0: { sl@0: gcdNoGlyphClass = 0, sl@0: gcdSimpleGlyph = 1, sl@0: gcdLigatureGlyph = 2, sl@0: gcdMarkGlyph = 3, sl@0: gcdComponentGlyph = 4 sl@0: }; sl@0: sl@0: struct AttachmentListTable sl@0: { sl@0: Offset coverageTableOffset; sl@0: le_uint16 glyphCount; sl@0: Offset attachPointTableOffsetArray[ANY_NUMBER]; sl@0: }; sl@0: sl@0: struct AttachPointTable sl@0: { sl@0: le_uint16 pointCount; sl@0: le_uint16 pointIndexArray[ANY_NUMBER]; sl@0: }; sl@0: sl@0: struct LigatureCaretListTable sl@0: { sl@0: Offset coverageTableOffset; sl@0: le_uint16 ligGlyphCount; sl@0: Offset ligGlyphTableOffsetArray[ANY_NUMBER]; sl@0: }; sl@0: sl@0: struct LigatureGlyphTable sl@0: { sl@0: le_uint16 caretCount; sl@0: Offset caretValueTableOffsetArray[ANY_NUMBER]; sl@0: }; sl@0: sl@0: struct CaretValueTable sl@0: { sl@0: le_uint16 caretValueFormat; sl@0: }; sl@0: sl@0: struct CaretValueFormat1Table : CaretValueTable sl@0: { sl@0: le_int16 coordinate; sl@0: }; sl@0: sl@0: struct CaretValueFormat2Table : CaretValueTable sl@0: { sl@0: le_uint16 caretValuePoint; sl@0: }; sl@0: sl@0: struct CaretValueFormat3Table : CaretValueTable sl@0: { sl@0: le_int16 coordinate; sl@0: Offset deviceTableOffset; sl@0: }; sl@0: sl@0: typedef ClassDefinitionTable MarkAttachClassDefinitionTable; sl@0: sl@0: struct GlyphDefinitionTableHeader sl@0: { sl@0: fixed32 version; sl@0: Offset glyphClassDefOffset; sl@0: Offset attachListOffset; sl@0: Offset ligCaretListOffset; sl@0: Offset MarkAttachClassDefOffset; sl@0: sl@0: const GlyphClassDefinitionTable *getGlyphClassDefinitionTable() const; sl@0: const AttachmentListTable *getAttachmentListTable()const ; sl@0: const LigatureCaretListTable *getLigatureCaretListTable() const; sl@0: const MarkAttachClassDefinitionTable *getMarkAttachClassDefinitionTable() const; sl@0: }; sl@0: sl@0: U_NAMESPACE_END sl@0: #endif