sl@0: /*
sl@0:  *
sl@0:  * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
sl@0:  *
sl@0:  */
sl@0: 
sl@0: #ifndef __LIGATURESUBSTITUTION_H
sl@0: #define __LIGATURESUBSTITUTION_H
sl@0: 
sl@0: /**
sl@0:  * \file
sl@0:  * \internal
sl@0:  */
sl@0: 
sl@0: #include "LETypes.h"
sl@0: #include "LayoutTables.h"
sl@0: #include "StateTables.h"
sl@0: #include "MorphTables.h"
sl@0: #include "MorphStateTables.h"
sl@0: 
sl@0: U_NAMESPACE_BEGIN
sl@0: 
sl@0: struct LigatureSubstitutionHeader : MorphStateTableHeader
sl@0: {
sl@0:     ByteOffset ligatureActionTableOffset;
sl@0:     ByteOffset componentTableOffset;
sl@0:     ByteOffset ligatureTableOffset;
sl@0: };
sl@0: 
sl@0: enum LigatureSubstitutionFlags
sl@0: {
sl@0:     lsfSetComponent     = 0x8000,
sl@0:     lsfDontAdvance      = 0x4000,
sl@0:     lsfActionOffsetMask = 0x3FFF
sl@0: };
sl@0: 
sl@0: struct LigatureSubstitutionStateEntry : StateEntry
sl@0: {
sl@0: };
sl@0: 
sl@0: typedef le_uint32 LigatureActionEntry;
sl@0: 
sl@0: enum LigatureActionFlags
sl@0: {
sl@0:     lafLast                 = 0x80000000,
sl@0:     lafStore                = 0x40000000,
sl@0:     lafComponentOffsetMask  = 0x3FFFFFFF
sl@0: };
sl@0: 
sl@0: U_NAMESPACE_END
sl@0: #endif