1 /**
2  *
3  * (C) Copyright IBM Corp. and Others 1998-2013 - All Rights Reserved
4  *
5  */
6 
7 #ifndef __CONTEXTUALGLYPHINSERTION_H
8 #define __CONTEXTUALGLYPHINSERTION_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 ContextualGlyphInsertionHeader : MorphStateTableHeader
24 {
25 };
26 
27 struct ContextualGlyphInsertionHeader2 : MorphStateTableHeader2
28 {
29     le_uint32 insertionTableOffset;
30 };
31 
32 enum ContextualGlyphInsertionFlags
33 {
34     cgiSetMark                  = 0x8000,
35     cgiDontAdvance              = 0x4000,
36     cgiCurrentIsKashidaLike     = 0x2000,
37     cgiMarkedIsKashidaLike      = 0x1000,
38     cgiCurrentInsertBefore      = 0x0800,
39     cgiMarkInsertBefore         = 0x0400,
40     cgiCurrentInsertCountMask   = 0x03E0,
41     cgiMarkedInsertCountMask    = 0x001F
42 };
43 
44 struct ContextualGlyphInsertionStateEntry : StateEntry
45 {
46     ByteOffset currentInsertionListOffset;
47     ByteOffset markedInsertionListOffset;
48 };
49 
50 struct ContextualGlyphInsertionStateEntry2 : StateEntry2
51 {
52     le_uint16 currentInsertionListIndex;
53     le_uint16 markedInsertionListIndex;
54 };
55 
56 U_NAMESPACE_END
57 #endif
58