summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-xetex/layout/StateTableProcessor.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu/icu-xetex/layout/StateTableProcessor.h')
-rw-r--r--Build/source/libs/icu/icu-xetex/layout/StateTableProcessor.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-xetex/layout/StateTableProcessor.h b/Build/source/libs/icu/icu-xetex/layout/StateTableProcessor.h
new file mode 100644
index 00000000000..41c50debe94
--- /dev/null
+++ b/Build/source/libs/icu/icu-xetex/layout/StateTableProcessor.h
@@ -0,0 +1,58 @@
+/*
+ *
+ * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ *
+ */
+
+#ifndef __STATETABLEPROCESSOR_H
+#define __STATETABLEPROCESSOR_H
+
+/**
+ * \file
+ * \internal
+ */
+
+#include "LETypes.h"
+#include "MorphTables.h"
+#include "MorphStateTables.h"
+#include "SubtableProcessor.h"
+
+U_NAMESPACE_BEGIN
+
+class LEGlyphStorage;
+
+class StateTableProcessor : public SubtableProcessor
+{
+public:
+ void process(LEGlyphStorage &glyphStorage);
+
+ virtual void beginStateTable() = 0;
+
+ virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index) = 0;
+
+ virtual void endStateTable() = 0;
+
+protected:
+ StateTableProcessor(const MorphSubtableHeader *morphSubtableHeader);
+ virtual ~StateTableProcessor();
+
+ StateTableProcessor();
+
+ le_int16 stateSize;
+ ByteOffset classTableOffset;
+ ByteOffset stateArrayOffset;
+ ByteOffset entryTableOffset;
+
+ const ClassTable *classTable;
+ TTGlyphID firstGlyph;
+ TTGlyphID lastGlyph;
+
+ const MorphStateTableHeader *stateTableHeader;
+
+private:
+ StateTableProcessor(const StateTableProcessor &other); // forbid copying of this class
+ StateTableProcessor &operator=(const StateTableProcessor &other); // forbid copying of this class
+};
+
+U_NAMESPACE_END
+#endif