]>
Commit | Line | Data |
---|---|---|
b75a7d8f | 1 | /* |
b75a7d8f | 2 | * |
51004dcb | 3 | * (C) Copyright IBM Corp. and Others 1998-2013 - All Rights Reserved |
b75a7d8f A |
4 | * |
5 | */ | |
6 | ||
7 | #ifndef __LIGATURESUBSTITUTION_H | |
8 | #define __LIGATURESUBSTITUTION_H | |
9 | ||
10 | /** | |
11 | * \file | |
12 | * \internal | |
13 | */ | |
14 | ||
15 | #include "LETypes.h" | |
16 | #include "LayoutTables.h" | |
17 | #include "StateTables.h" | |
18 | #include "MorphTables.h" | |
19 | #include "MorphStateTables.h" | |
20 | ||
21 | U_NAMESPACE_BEGIN | |
22 | ||
23 | struct LigatureSubstitutionHeader : MorphStateTableHeader | |
24 | { | |
25 | ByteOffset ligatureActionTableOffset; | |
26 | ByteOffset componentTableOffset; | |
27 | ByteOffset ligatureTableOffset; | |
28 | }; | |
29 | ||
51004dcb A |
30 | struct LigatureSubstitutionHeader2 : MorphStateTableHeader2 |
31 | { | |
32 | le_uint32 ligActionOffset; | |
33 | le_uint32 componentOffset; | |
34 | le_uint32 ligatureOffset; | |
35 | }; | |
36 | ||
b75a7d8f A |
37 | enum LigatureSubstitutionFlags |
38 | { | |
39 | lsfSetComponent = 0x8000, | |
40 | lsfDontAdvance = 0x4000, | |
51004dcb A |
41 | lsfActionOffsetMask = 0x3FFF, // N/A in morx |
42 | lsfPerformAction = 0x2000 | |
b75a7d8f A |
43 | }; |
44 | ||
45 | struct LigatureSubstitutionStateEntry : StateEntry | |
46 | { | |
47 | }; | |
48 | ||
51004dcb A |
49 | struct LigatureSubstitutionStateEntry2 |
50 | { | |
51 | le_uint16 nextStateIndex; | |
52 | le_uint16 entryFlags; | |
53 | le_uint16 ligActionIndex; | |
54 | }; | |
55 | ||
b75a7d8f A |
56 | typedef le_uint32 LigatureActionEntry; |
57 | ||
58 | enum LigatureActionFlags | |
59 | { | |
60 | lafLast = 0x80000000, | |
61 | lafStore = 0x40000000, | |
62 | lafComponentOffsetMask = 0x3FFFFFFF | |
63 | }; | |
64 | ||
65 | U_NAMESPACE_END | |
66 | #endif |