summaryrefslogtreecommitdiff
path: root/Build/source/libs/graphite/engine-2.3.1/test/RegressionTest/RtTextSrc.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/graphite/engine-2.3.1/test/RegressionTest/RtTextSrc.h')
-rw-r--r--Build/source/libs/graphite/engine-2.3.1/test/RegressionTest/RtTextSrc.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/Build/source/libs/graphite/engine-2.3.1/test/RegressionTest/RtTextSrc.h b/Build/source/libs/graphite/engine-2.3.1/test/RegressionTest/RtTextSrc.h
new file mode 100644
index 00000000000..d0ce76f64ac
--- /dev/null
+++ b/Build/source/libs/graphite/engine-2.3.1/test/RegressionTest/RtTextSrc.h
@@ -0,0 +1,74 @@
+/*--------------------------------------------------------------------*//*:Ignore this sentence.
+Copyright (C) 1999, 2001 SIL International. All rights reserved.
+
+Distributable under the terms of either the Common Public License or the
+GNU Lesser General Public License, as specified in the LICENSING.txt file.
+
+File: RtTextSrc.h
+Responsibility: Sharon Correll
+Last reviewed: Not yet.
+
+Description:
+
+-------------------------------------------------------------------------------*//*:End Ignore*/
+#pragma once
+#ifndef RTTXTSRC_INCLUDED
+#define RTTXTSRC_INCLUDED
+
+#include <cstring>
+
+/*----------------------------------------------------------------------------------------------
+ Class: RtTextSrc
+ This class extends the SimpleTextSource to allow setting of features.
+----------------------------------------------------------------------------------------------*/
+class RtTextSrc : public SimpleTextSrc
+{
+public:
+ RtTextSrc(gr::utf16 * pszText) : SimpleTextSrc(pszText)
+ {
+ m_fRtl = false;
+ memset(m_fset, 0, MAXFEAT * sizeof(FeatureSetting));
+ }
+
+ void setFeatures(FeatureSetting * fset)
+ {
+ m_cFeats = 0;
+ for (int i = 0; i < MAXFEAT; i++)
+ {
+ if (fset[i].id > 0)
+ {
+ m_fset[i].id = fset[i].id;
+ m_fset[i].value = fset[i].value;
+ m_cFeats++;
+ }
+ }
+ }
+
+ virtual size_t getFontFeatures(toffset ich, FeatureSetting * prgfset)
+ {
+ // Note: size of prgfset buffer = gr::kMaxFeatures = 64
+ std::copy(m_fset, m_fset + MAXFEAT, prgfset);
+ return m_cFeats;
+ }
+
+ virtual bool getRightToLeft(toffset ich)
+ {
+ return m_fRtl;
+ }
+ virtual unsigned int getDirectionDepth(toffset ich)
+ {
+ return ((m_fRtl == 1) ? 1 : 0);
+ }
+ void setRightToLeft(bool f)
+ {
+ m_fRtl = f;
+ }
+
+protected:
+ bool m_fRtl;
+ int m_cFeats;
+ FeatureSetting m_fset[MAXFEAT];
+};
+
+
+#endif // !RTTXTSRC_INCLUDED