| /* |
| * |
| * (C) Copyright IBM Corp. and Others 1998-2013 - All Rights Reserved |
| * |
| */ |
| |
| #ifndef __LIGATURESUBSTITUTION_H |
| #define __LIGATURESUBSTITUTION_H |
| |
| /** |
| * \file |
| * \internal |
| */ |
| |
| #include "LETypes.h" |
| #include "LayoutTables.h" |
| #include "StateTables.h" |
| #include "MorphTables.h" |
| #include "MorphStateTables.h" |
| |
| U_NAMESPACE_BEGIN |
| |
| struct LigatureSubstitutionHeader : MorphStateTableHeader |
| { |
| ByteOffset ligatureActionTableOffset; |
| ByteOffset componentTableOffset; |
| ByteOffset ligatureTableOffset; |
| }; |
| |
| struct LigatureSubstitutionHeader2 : MorphStateTableHeader2 |
| { |
| le_uint32 ligActionOffset; |
| le_uint32 componentOffset; |
| le_uint32 ligatureOffset; |
| }; |
| |
| enum LigatureSubstitutionFlags |
| { |
| lsfSetComponent = 0x8000, |
| lsfDontAdvance = 0x4000, |
| lsfActionOffsetMask = 0x3FFF, // N/A in morx |
| lsfPerformAction = 0x2000 |
| }; |
| |
| struct LigatureSubstitutionStateEntry : StateEntry |
| { |
| }; |
| |
| struct LigatureSubstitutionStateEntry2 |
| { |
| le_uint16 nextStateIndex; |
| le_uint16 entryFlags; |
| le_uint16 ligActionIndex; |
| }; |
| |
| typedef le_uint32 LigatureActionEntry; |
| |
| enum LigatureActionFlags |
| { |
| lafLast = 0x80000000, |
| lafStore = 0x40000000, |
| lafComponentOffsetMask = 0x3FFFFFFF |
| }; |
| |
| U_NAMESPACE_END |
| #endif |