summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qharfbuzz_copy_p.h
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@nokia.com>2011-06-10 10:50:10 +0200
committerJørgen Lind <jorgen.lind@nokia.com>2011-06-10 13:09:57 +0200
commitc70efdec0fa329091d98da215af446f03ef65ab2 (patch)
treef201cebfb17c45f1f0d51aee60c513df5f13c644 /src/gui/text/qharfbuzz_copy_p.h
parentf30b8b96b8540ba7d78e9ca7f6db152b40e9b2af (diff)
parentdb37aa1004f1e2489b94f1d9cc21630b62e03552 (diff)
Merge remote-tracking branch 'base/master' into refactor
Conflicts: examples/animation/animatedtiles/animatedtiles.pro examples/animation/appchooser/appchooser.pro examples/animation/moveblocks/moveblocks.pro examples/animation/states/states.pro examples/animation/stickman/stickman.pro examples/dialogs/configdialog/configdialog.pro examples/dialogs/sipdialog/sipdialog.pro examples/dialogs/standarddialogs/standarddialogs.pro examples/dialogs/tabdialog/tabdialog.pro examples/draganddrop/draggableicons/draggableicons.pro examples/draganddrop/draggabletext/draggabletext.pro examples/draganddrop/fridgemagnets/fridgemagnets.pro examples/draganddrop/puzzle/puzzle.pro examples/gestures/imagegestures/imagegestures.pro examples/graphicsview/basicgraphicslayouts/basicgraphicslayouts.pro examples/graphicsview/collidingmice/collidingmice.pro examples/graphicsview/elasticnodes/elasticnodes.pro examples/graphicsview/weatheranchorlayout/weatheranchorlayout.pro examples/itemviews/addressbook/addressbook.pro examples/itemviews/chart/chart.pro examples/itemviews/fetchmore/fetchmore.pro examples/itemviews/puzzle/puzzle.pro examples/mainwindows/menus/menus.pro examples/painting/basicdrawing/basicdrawing.pro examples/painting/concentriccircles/concentriccircles.pro examples/painting/imagecomposition/imagecomposition.pro examples/painting/painterpaths/painterpaths.pro examples/painting/transformations/transformations.pro examples/qtconcurrent/imagescaling/imagescaling.pro examples/qtestlib/tutorial1/tutorial1.pro examples/qtestlib/tutorial2/tutorial2.pro examples/qtestlib/tutorial3/tutorial3.pro examples/qtestlib/tutorial4/tutorial4.pro examples/qtestlib/tutorial5/tutorial5.pro examples/qws/dbscreen/dbscreen.pro examples/qws/svgalib/svgalib.pro examples/richtext/syntaxhighlighter/syntaxhighlighter.pro examples/statemachine/rogue/rogue.pro examples/tools/plugandpaintplugins/extrafilters/extrafilters.pro examples/tools/styleplugin/plugin/plugin.pro examples/uitools/multipleinheritance/multipleinheritance.pro examples/widgets/analogclock/analogclock.pro examples/widgets/calculator/calculator.pro examples/widgets/calendarwidget/calendarwidget.pro examples/widgets/codeeditor/codeeditor.pro examples/widgets/icons/icons.pro examples/widgets/imageviewer/imageviewer.pro examples/widgets/lineedits/lineedits.pro examples/widgets/movie/movie.pro examples/widgets/shapedclock/shapedclock.pro examples/widgets/softkeys/softkeys.pro examples/widgets/tetrix/tetrix.pro src/gui/painting/qpaintengine_raster.cpp src/gui/painting/qpaintengine_raster_p.h src/openvg/openvg.pro src/openvg/qpaintengine_vg_p.h src/plugins/graphicssystems/meego/meego.pro src/plugins/platforms/fontdatabases/basicunix/basicunix.pri
Diffstat (limited to 'src/gui/text/qharfbuzz_copy_p.h')
-rw-r--r--src/gui/text/qharfbuzz_copy_p.h106
1 files changed, 106 insertions, 0 deletions
diff --git a/src/gui/text/qharfbuzz_copy_p.h b/src/gui/text/qharfbuzz_copy_p.h
new file mode 100644
index 0000000000..74b824ab35
--- /dev/null
+++ b/src/gui/text/qharfbuzz_copy_p.h
@@ -0,0 +1,106 @@
+/*
+ * 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
+*/
+#if defined(QT_BUILD_GUI_LIB) || defined(QT_COMPILES_IN_HARFBUZZ)
+#include <private/qharfbuzz_p.h>
+#else
+
+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 // ifdef QT_BUILD_GUI_LIB
+
+#endif // QHARFBUZZ_COPY_P_H