summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/harfbuzz/tests/shaping
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2012-05-10 10:31:16 +0300
committerQt by Nokia <qt-info@nokia.com>2012-05-10 11:34:25 +0200
commitcbfdec66033d14020d3e8a49bacc0d12d2b6798e (patch)
tree02e94eaad62c85f1556623b17412607102f067cb /src/3rdparty/harfbuzz/tests/shaping
parent8c0048a377568b646b3b87be0b02322fce68b780 (diff)
move the default text breaking algorithm impl from HarfBuzz to Qt
there are several reasons to do this: * text breaking is not a shaper's job; * since the text breaking rules are bound to a specific Unicode version, updating Qt's internal unicode data would require updating the data in HB as well; * makes porting to HurfBuzz-NG some easier Change-Id: I0bbf8e8a343bc074696f4ddf2ae4e7fa32a61629 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/3rdparty/harfbuzz/tests/shaping')
-rw-r--r--src/3rdparty/harfbuzz/tests/shaping/Makefile.am2
-rw-r--r--src/3rdparty/harfbuzz/tests/shaping/harfbuzz-qt.cpp57
2 files changed, 58 insertions, 1 deletions
diff --git a/src/3rdparty/harfbuzz/tests/shaping/Makefile.am b/src/3rdparty/harfbuzz/tests/shaping/Makefile.am
index 31c6db73b4..5a7da0abf3 100644
--- a/src/3rdparty/harfbuzz/tests/shaping/Makefile.am
+++ b/src/3rdparty/harfbuzz/tests/shaping/Makefile.am
@@ -1,7 +1,7 @@
check_PROGRAMS = shaping
-shaping_SOURCES = main.cpp ../linebreaking/harfbuzz-qt.cpp
+shaping_SOURCES = main.cpp harfbuzz-qt.cpp
shaping_LDADD = $(QT_GUI_LIBS) $(QT_QTEST_LIBS) ../../src/libharfbuzz-1.la
main.o: main.moc
diff --git a/src/3rdparty/harfbuzz/tests/shaping/harfbuzz-qt.cpp b/src/3rdparty/harfbuzz/tests/shaping/harfbuzz-qt.cpp
new file mode 100644
index 0000000000..924a97da27
--- /dev/null
+++ b/src/3rdparty/harfbuzz/tests/shaping/harfbuzz-qt.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * This is part of HarfBuzz, an OpenType Layout engine library.
+ *
+ * Permission is hereby granted, without written agreement and without
+ * license or royalty fees, to use, copy, modify, and distribute this
+ * software and its documentation for any purpose, provided that the
+ * above copyright notice and the following two paragraphs appear in
+ * all copies of this software.
+ *
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ */
+
+#include <harfbuzz-external.h>
+#include <QChar>
+#include <QLibrary>
+
+extern "C" {
+
+void HB_GetUnicodeCharProperties(HB_UChar32 ch, HB_CharCategory *category, int *combiningClass)
+{
+ *category = (HB_CharCategory)QChar::category(ch);
+ *combiningClass = QChar::combiningClass(ch);
+}
+
+HB_CharCategory HB_GetUnicodeCharCategory(HB_UChar32 ch)
+{
+ return (HB_CharCategory)QChar::category(ch);
+}
+
+int HB_GetUnicodeCharCombiningClass(HB_UChar32 ch)
+{
+ return QChar::combiningClass(ch);
+}
+
+HB_UChar16 HB_GetMirroredChar(HB_UChar16 ch)
+{
+ return QChar::mirroredChar(ch);
+}
+
+void (*HB_Library_Resolve(const char *library, int version, const char *symbol))()
+{
+ return QLibrary::resolve(library, version, symbol);
+}
+
+}