summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/text/qfontengine_ft_p.h6
-rw-r--r--src/gui/text/qharfbuzz_copy_p.h101
-rw-r--r--src/gui/text/qtextengine_p.h8
-rw-r--r--src/gui/text/text.pri3
4 files changed, 115 insertions, 3 deletions
diff --git a/src/gui/text/qfontengine_ft_p.h b/src/gui/text/qfontengine_ft_p.h
index 2549fc5ae1..4ee26582b4 100644
--- a/src/gui/text/qfontengine_ft_p.h
+++ b/src/gui/text/qfontengine_ft_p.h
@@ -70,7 +70,11 @@
#include <qmutex.h>
-#include <harfbuzz-shaper.h>
+#if defined (QT_BUILD_GUI_LIB)
+# include "private/qharfbuzz_p.h"
+#else
+# include "private/qharfbuzz_copy_p.h"
+#endif
QT_BEGIN_NAMESPACE
diff --git a/src/gui/text/qharfbuzz_copy_p.h b/src/gui/text/qharfbuzz_copy_p.h
new file mode 100644
index 0000000000..07503240a2
--- /dev/null
+++ b/src/gui/text/qharfbuzz_copy_p.h
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies)
+ * Copyright (C) 2007 Red Hat, Inc.
+ *
+ * This code is a modified version of some 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.
+ *
+ * Red Hat Author(s): Behdad Esfahbod
+ */
+
+#ifndef QHARFBUZZ_COPY_P_H
+#define QHARFBUZZ_COPY_P_H
+
+/*
+ The purpose of this header file is to allow inclusion of the private
+ headers for font and text classes without having to pull in the full
+ harfbuzz library under QTDIR/src/3rdparty/harfbuzz/src
+*/
+
+extern "C" {
+
+#ifdef __xlC__
+typedef unsigned hb_bitfield;
+#else
+typedef quint8 hb_bitfield;
+#endif
+
+typedef enum {
+ /* no error */
+ HB_Err_Ok = 0x0000,
+ HB_Err_Not_Covered = 0xFFFF,
+
+ /* _hb_err() is called whenever returning the following errors,
+ * and in a couple places for HB_Err_Not_Covered too. */
+
+ /* programmer error */
+ HB_Err_Invalid_Argument = 0x1A66,
+
+ /* font error */
+ HB_Err_Invalid_SubTable_Format = 0x157F,
+ HB_Err_Invalid_SubTable = 0x1570,
+ HB_Err_Read_Error = 0x6EAD,
+
+ /* system error */
+ HB_Err_Out_Of_Memory = 0xDEAD
+} HB_Error;
+
+typedef quint32 HB_Glyph;
+typedef void * HB_Font;
+typedef void * HB_Face;
+typedef void * HB_FontRec;
+typedef quint32 hb_uint32;
+typedef qint32 HB_Fixed;
+
+typedef struct {
+ HB_Fixed x;
+ HB_Fixed y;
+} HB_FixedPoint;
+
+// The GlyphAttrbutes class is used inline so it needs to be complete.
+typedef struct {
+ hb_bitfield justification :4; /* Justification class */
+ hb_bitfield clusterStart :1; /* First glyph of representation of cluster */
+ hb_bitfield mark :1; /* needs to be positioned around base char */
+ hb_bitfield zeroWidth :1; /* ZWJ, ZWNJ etc, with no width */
+ hb_bitfield dontPrint :1;
+ hb_bitfield combiningClass :8;
+} HB_GlyphAttributes;
+
+// This struct is strictly not needed, but we replicate it completely in
+// case the compiler tries to get clever with padding.
+typedef struct {
+ /*HB_LineBreakType*/ hb_bitfield lineBreakType :2;
+ /*HB_Bool*/ hb_bitfield whiteSpace :1; /* A unicode whitespace character, except NBSP, ZWNBSP */
+ /*HB_Bool*/ hb_bitfield charStop :1; /* Valid cursor position (for left/right arrow) */
+ /*HB_Bool*/ hb_bitfield wordBoundary :1;
+ /*HB_Bool*/ hb_bitfield sentenceBoundary :1;
+ hb_bitfield unused :2;
+} HB_CharAttributes;
+
+}
+
+#endif // QHARFBUZZ_COPY_P_H
diff --git a/src/gui/text/qtextengine_p.h b/src/gui/text/qtextengine_p.h
index 055974a4ad..44e38e7343 100644
--- a/src/gui/text/qtextengine_p.h
+++ b/src/gui/text/qtextengine_p.h
@@ -70,7 +70,13 @@
#ifndef QT_BUILD_COMPAT_LIB
#include "private/qtextdocument_p.h"
#endif
-#include "private/qharfbuzz_p.h"
+
+#if defined (QT_BUILD_GUI_LIB)
+# include "private/qharfbuzz_p.h"
+#else
+# include "private/qharfbuzz_copy_p.h"
+#endif
+
#include "private/qfixed_p.h"
#include <stdlib.h>
diff --git a/src/gui/text/text.pri b/src/gui/text/text.pri
index b6cdc52e10..eb5937a493 100644
--- a/src/gui/text/text.pri
+++ b/src/gui/text/text.pri
@@ -43,7 +43,8 @@ HEADERS += \
text/qrawfont.h \
text/qrawfont_p.h \
text/qglyphrun.h \
- text/qglyphrun_p.h
+ text/qglyphrun_p.h \
+ text/qharfbuzz_copy_p.h
SOURCES += \
text/qfont.cpp \