summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-4.6/layout/MorphTables.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu/icu-4.6/layout/MorphTables.h')
-rw-r--r--Build/source/libs/icu/icu-4.6/layout/MorphTables.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-4.6/layout/MorphTables.h b/Build/source/libs/icu/icu-4.6/layout/MorphTables.h
new file mode 100644
index 00000000000..8d198cf41fe
--- /dev/null
+++ b/Build/source/libs/icu/icu-4.6/layout/MorphTables.h
@@ -0,0 +1,85 @@
+/*
+ *
+ * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ *
+ */
+
+#ifndef __MORPHTABLES_H
+#define __MORPHTABLES_H
+
+/**
+ * \file
+ * \internal
+ */
+
+#include "LETypes.h"
+#include "LayoutTables.h"
+
+U_NAMESPACE_BEGIN
+
+class LEGlyphStorage;
+
+typedef le_uint32 FeatureFlags;
+
+typedef le_int16 FeatureType;
+typedef le_int16 FeatureSetting;
+
+struct FeatureTableEntry
+{
+ FeatureType featureType;
+ FeatureSetting featureSetting;
+ FeatureFlags enableFlags;
+ FeatureFlags disableFlags;
+};
+
+struct ChainHeader
+{
+ FeatureFlags defaultFlags;
+ le_uint32 chainLength;
+ le_int16 nFeatureEntries;
+ le_int16 nSubtables;
+ FeatureTableEntry featureTable[ANY_NUMBER];
+};
+
+struct MorphTableHeader
+{
+ le_int32 version;
+ le_uint32 nChains;
+ ChainHeader chains[ANY_NUMBER];
+
+ void process(LEGlyphStorage &glyphStorage) const;
+};
+
+typedef le_int16 SubtableCoverage;
+
+enum SubtableCoverageFlags
+{
+ scfVertical = 0x8000,
+ scfReverse = 0x4000,
+ scfIgnoreVt = 0x2000,
+ scfReserved = 0x1FF8,
+ scfTypeMask = 0x0007
+};
+
+enum MorphSubtableType
+{
+ mstIndicRearrangement = 0,
+ mstContextualGlyphSubstitution = 1,
+ mstLigatureSubstitution = 2,
+ mstReservedUnused = 3,
+ mstNonContextualGlyphSubstitution = 4,
+ mstContextualGlyphInsertion = 5
+};
+
+struct MorphSubtableHeader
+{
+ le_int16 length;
+ SubtableCoverage coverage;
+ FeatureFlags subtableFeatures;
+
+ void process(LEGlyphStorage &glyphStorage) const;
+};
+
+U_NAMESPACE_END
+#endif
+