3 * (C) Copyright IBM Corp. and others 2013-2014 - All Rights Reserved
7 #ifndef __CONTEXTUALGLYPHINSERTIONPROCESSOR2_H
8 #define __CONTEXTUALGLYPHINSERTIONPROCESSOR2_H
16 #include "MorphTables.h"
17 #include "SubtableProcessor2.h"
18 #include "StateTableProcessor2.h"
19 #include "ContextualGlyphInsertionProc2.h"
20 #include "ContextualGlyphInsertion.h"
26 class ContextualGlyphInsertionProcessor2
: public StateTableProcessor2
29 virtual void beginStateTable();
31 virtual le_uint16
processStateEntry(LEGlyphStorage
&glyphStorage
,
32 le_int32
&currGlyph
, EntryTableIndex2 index
, LEErrorCode
&success
);
34 virtual void endStateTable();
36 ContextualGlyphInsertionProcessor2(const LEReferenceTo
<MorphSubtableHeader2
> &morphSubtableHeader
, LEErrorCode
&success
);
37 virtual ~ContextualGlyphInsertionProcessor2();
40 * ICU "poor man's RTTI", returns a UClassID for the actual class.
42 * @deprecated ICU 54. See {@link icu::LayoutEngine}
44 virtual UClassID
getDynamicClassID() const;
47 * ICU "poor man's RTTI", returns a UClassID for this class.
49 * @deprecated ICU 54. See {@link icu::LayoutEngine}
51 static UClassID
getStaticClassID();
54 ContextualGlyphInsertionProcessor2();
57 * Perform the actual insertion
58 * @param atGlyph index of glyph to insert at
59 * @param index index into the insertionTable (in/out)
60 * @param count number of insertions
61 * @param isKashidaLike Kashida like (vs Split Vowel like). No effect currently.
62 * @param isBefore if true, insert extra glyphs before the marked glyph
64 void doInsertion(LEGlyphStorage
&glyphStorage
,
68 le_bool isKashidaLike
,
70 LEErrorCode
&success
);
75 LEReferenceToArrayOf
<le_uint16
> insertionTable
;
76 LEReferenceToArrayOf
<ContextualGlyphInsertionStateEntry2
> entryTable
;
77 LEReferenceTo
<ContextualGlyphInsertionHeader2
> contextualGlyphHeader
;