|
1 /* |
|
2 * |
|
3 * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved |
|
4 * |
|
5 */ |
|
6 |
|
7 #ifndef __LIGATURESUBSTITUTIONPROCESSOR_H |
|
8 #define __LIGATURESUBSTITUTIONPROCESSOR_H |
|
9 |
|
10 /** |
|
11 * \file |
|
12 * \internal |
|
13 */ |
|
14 |
|
15 #include "LETypes.h" |
|
16 #include "MorphTables.h" |
|
17 #include "SubtableProcessor.h" |
|
18 #include "StateTableProcessor.h" |
|
19 #include "LigatureSubstitution.h" |
|
20 |
|
21 U_NAMESPACE_BEGIN |
|
22 |
|
23 class LEGlyphStorage; |
|
24 |
|
25 #define nComponents 16 |
|
26 |
|
27 class LigatureSubstitutionProcessor : public StateTableProcessor |
|
28 { |
|
29 public: |
|
30 virtual void beginStateTable(); |
|
31 |
|
32 virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index); |
|
33 |
|
34 virtual void endStateTable(); |
|
35 |
|
36 LigatureSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader); |
|
37 virtual ~LigatureSubstitutionProcessor(); |
|
38 |
|
39 /** |
|
40 * ICU "poor man's RTTI", returns a UClassID for the actual class. |
|
41 * |
|
42 * @stable ICU 2.8 |
|
43 */ |
|
44 virtual UClassID getDynamicClassID() const; |
|
45 |
|
46 /** |
|
47 * ICU "poor man's RTTI", returns a UClassID for this class. |
|
48 * |
|
49 * @stable ICU 2.8 |
|
50 */ |
|
51 static UClassID getStaticClassID(); |
|
52 |
|
53 private: |
|
54 LigatureSubstitutionProcessor(); |
|
55 |
|
56 protected: |
|
57 ByteOffset ligatureActionTableOffset; |
|
58 ByteOffset componentTableOffset; |
|
59 ByteOffset ligatureTableOffset; |
|
60 |
|
61 const LigatureSubstitutionStateEntry *entryTable; |
|
62 |
|
63 le_int32 componentStack[nComponents]; |
|
64 le_int16 m; |
|
65 |
|
66 const LigatureSubstitutionHeader *ligatureSubstitutionHeader; |
|
67 |
|
68 }; |
|
69 |
|
70 U_NAMESPACE_END |
|
71 #endif |