diff options
Diffstat (limited to 'qtinterface/qt4/Qt/qpaintengine.h')
-rw-r--r-- | qtinterface/qt4/Qt/qpaintengine.h | 364 |
1 files changed, 0 insertions, 364 deletions
diff --git a/qtinterface/qt4/Qt/qpaintengine.h b/qtinterface/qt4/Qt/qpaintengine.h deleted file mode 100644 index 1089cce..0000000 --- a/qtinterface/qt4/Qt/qpaintengine.h +++ /dev/null @@ -1,364 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial Usage -** Licensees holding valid Qt Commercial licenses may use this file in -** accordance with the Qt Commercial License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Nokia. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPAINTENGINE_H -#define QPAINTENGINE_H - -#include <QtCore/qnamespace.h> -#include <QtCore/qobjectdefs.h> -#include <QtCore/qscopedpointer.h> -#include <QtGui/qpainter.h> - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Gui) - -class QFontEngine; -class QLineF; -class QPaintDevice; -class QPaintEnginePrivate; -class QPainterPath; -class QPointF; -class QPolygonF; -class QRectF; -struct QGlyphLayout; -class QTextItemInt; -class QPaintEngineState; - -class Q_GUI_EXPORT QTextItem { -public: - enum RenderFlag { - RightToLeft = 0x1, - Overline = 0x10, - Underline = 0x20, - StrikeOut = 0x40, - - Dummy = 0xffffffff - }; - Q_DECLARE_FLAGS(RenderFlags, RenderFlag) - qreal descent() const; - qreal ascent() const; - qreal width() const; - - RenderFlags renderFlags() const; - QString text() const; - QFont font() const; -}; -Q_DECLARE_TYPEINFO(QTextItem, Q_PRIMITIVE_TYPE); - - -class Q_GUI_EXPORT QPaintEngine -{ - Q_DECLARE_PRIVATE(QPaintEngine) -public: - enum PaintEngineFeature { - PrimitiveTransform = 0x00000001, // Can transform primitives brushes - PatternTransform = 0x00000002, // Can transform pattern brushes - PixmapTransform = 0x00000004, // Can transform pixmaps - PatternBrush = 0x00000008, // Can fill with pixmaps and standard patterns - LinearGradientFill = 0x00000010, // Can fill gradient areas - RadialGradientFill = 0x00000020, // Can render radial gradients - ConicalGradientFill = 0x00000040, // Can render conical gradients - AlphaBlend = 0x00000080, // Can do source over alpha blend - PorterDuff = 0x00000100, // Can do general porter duff compositions - PainterPaths = 0x00000200, // Can fill, outline and clip paths - Antialiasing = 0x00000400, // Can antialias lines - BrushStroke = 0x00000800, // Can render brush based pens - ConstantOpacity = 0x00001000, // Can render at constant opacity - MaskedBrush = 0x00002000, // Can fill with textures that has an alpha channel or mask - PerspectiveTransform = 0x00004000, // Can do perspective transformations - BlendModes = 0x00008000, // Can do extended Porter&Duff composition - ObjectBoundingModeGradients = 0x00010000, // Can do object bounding mode gradients - RasterOpModes = 0x00020000, // Can do logical raster operations - PaintOutsidePaintEvent = 0x20000000, // Engine is capable of painting outside paint events - /* 0x10000000, // Used for emulating - QGradient::StretchToDevice, - defined in qpainter.cpp - - 0x40000000, // Used internally for emulating opaque backgrounds - */ - - AllFeatures = 0xffffffff // For convenience - }; - Q_DECLARE_FLAGS(PaintEngineFeatures, PaintEngineFeature) - - enum DirtyFlag { - DirtyPen = 0x0001, - DirtyBrush = 0x0002, - DirtyBrushOrigin = 0x0004, - DirtyFont = 0x0008, - DirtyBackground = 0x0010, - DirtyBackgroundMode = 0x0020, - DirtyTransform = 0x0040, - DirtyClipRegion = 0x0080, - DirtyClipPath = 0x0100, - DirtyHints = 0x0200, - DirtyCompositionMode = 0x0400, - DirtyClipEnabled = 0x0800, - DirtyOpacity = 0x1000, - - AllDirty = 0xffff - }; - Q_DECLARE_FLAGS(DirtyFlags, DirtyFlag) - - enum PolygonDrawMode { - OddEvenMode, - WindingMode, - ConvexMode, - PolylineMode - }; - - explicit QPaintEngine(PaintEngineFeatures features=0); - virtual ~QPaintEngine(); - - bool isActive() const { return active; } - void setActive(bool newState) { active = newState; } - - virtual bool begin(QPaintDevice *pdev) = 0; - virtual bool end() = 0; - - virtual void updateState(const QPaintEngineState &state) = 0; - - virtual void drawRects(const QRect *rects, int rectCount); - virtual void drawRects(const QRectF *rects, int rectCount); - - virtual void drawLines(const QLine *lines, int lineCount); - virtual void drawLines(const QLineF *lines, int lineCount); - - virtual void drawEllipse(const QRectF &r); - virtual void drawEllipse(const QRect &r); - - virtual void drawPath(const QPainterPath &path); - - virtual void drawPoints(const QPointF *points, int pointCount); - virtual void drawPoints(const QPoint *points, int pointCount); - - virtual void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode); - virtual void drawPolygon(const QPoint *points, int pointCount, PolygonDrawMode mode); - - virtual void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) = 0; - virtual void drawTextItem(const QPointF &p, const QTextItem &textItem); - virtual void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s); - virtual void drawImage(const QRectF &r, const QImage &pm, const QRectF &sr, - Qt::ImageConversionFlags flags = Qt::AutoColor); - - void setPaintDevice(QPaintDevice *device); - QPaintDevice *paintDevice() const; - - void setSystemClip(const QRegion &baseClip); - QRegion systemClip() const; - - void setSystemRect(const QRect &rect); - QRect systemRect() const; - -#ifdef Q_WS_WIN - virtual HDC getDC() const; - virtual void releaseDC(HDC hdc) const; -#endif - - virtual QPoint coordinateOffset() const; - - enum Type { - X11, - Windows, - QuickDraw, CoreGraphics, MacPrinter, - QWindowSystem, - PostScript, - OpenGL, - Picture, - SVG, - Raster, - Direct3D, - Pdf, - OpenVG, - OpenGL2, - PaintBuffer, - - User = 50, // first user type id - MaxUser = 100 // last user type id - }; - virtual Type type() const = 0; - - inline void fix_neg_rect(int *x, int *y, int *w, int *h); - - inline bool testDirty(DirtyFlags df); - inline void setDirty(DirtyFlags df); - inline void clearDirty(DirtyFlags df); - - bool hasFeature(PaintEngineFeatures feature) const { return (gccaps & feature) != 0; } - - QPainter *painter() const; - - void syncState(); - inline bool isExtended() const { return extended; } - -protected: - QPaintEngine(QPaintEnginePrivate &data, PaintEngineFeatures devcaps=0); - - QPaintEngineState *state; - PaintEngineFeatures gccaps; - - uint active : 1; - uint selfDestruct : 1; - uint extended : 1; - - QScopedPointer<QPaintEnginePrivate> d_ptr; - -private: - void setAutoDestruct(bool autoDestr) { selfDestruct = autoDestr; } - bool autoDestruct() const { return selfDestruct; } - Q_DISABLE_COPY(QPaintEngine) - - friend class QPainterReplayer; - friend class QFontEngineBox; - friend class QFontEngineMac; - friend class QFontEngineWin; -#ifndef QT_NO_FREETYPE - friend class QFontEngineFT; -#endif -#ifndef QT_NO_QWS_QPF - friend class QFontEngineQPF1; -#endif -#ifndef QT_NO_QWS_QPF2 - friend class QFontEngineQPF; -#endif - friend class QPSPrintEngine; - friend class QMacPrintEngine; - friend class QMacPrintEnginePrivate; -#ifdef Q_WS_QWS - friend class QtopiaPrintEngine; - friend class QtopiaPrintEnginePrivate; - friend class QProxyFontEngine; -#endif - friend class QPainter; - friend class QPainterPrivate; - friend class QWidget; - friend class QWidgetPrivate; - friend class QWin32PaintEngine; - friend class QWin32PaintEnginePrivate; - friend class QMacCGContext; - friend class QPreviewPaintEngine; - friend class QX11GLPixmapData; -}; - - -class Q_GUI_EXPORT QPaintEngineState -{ -public: - QPaintEngine::DirtyFlags state() const { return dirtyFlags; } - - QPen pen() const; - QBrush brush() const; - QPointF brushOrigin() const; - QBrush backgroundBrush() const; - Qt::BGMode backgroundMode() const; - QFont font() const; - QMatrix matrix() const; - QTransform transform() const; - - Qt::ClipOperation clipOperation() const; - QRegion clipRegion() const; - QPainterPath clipPath() const; - bool isClipEnabled() const; - - QPainter::RenderHints renderHints() const; - QPainter::CompositionMode compositionMode() const; - qreal opacity() const; - - QPainter *painter() const; - - bool brushNeedsResolving() const; - bool penNeedsResolving() const; - -protected: - friend class QPaintEngine; - friend class QRasterPaintEngine; - friend class QWidget; - friend class QPainter; - friend class QPainterPrivate; - friend class QMacPrintEnginePrivate; - - QPaintEngine::DirtyFlags dirtyFlags; -}; - -// -// inline functions -// - -inline void QPaintEngine::fix_neg_rect(int *x, int *y, int *w, int *h) -{ - if (*w < 0) { - *w = -*w; - *x -= *w - 1; - } - if (*h < 0) { - *h = -*h; - *y -= *h - 1; - } -} - -inline bool QPaintEngine::testDirty(DirtyFlags df) { - Q_ASSERT(state); - return ((state->dirtyFlags & df) != 0); -} - -inline void QPaintEngine::setDirty(DirtyFlags df) { - Q_ASSERT(state); - state->dirtyFlags |= df; -} - -inline void QPaintEngine::clearDirty(DirtyFlags df) -{ - Q_ASSERT(state); - state->dirtyFlags &= ~static_cast<uint>(df); -} - -Q_DECLARE_OPERATORS_FOR_FLAGS(QTextItem::RenderFlags) -Q_DECLARE_OPERATORS_FOR_FLAGS(QPaintEngine::PaintEngineFeatures) -Q_DECLARE_OPERATORS_FOR_FLAGS(QPaintEngine::DirtyFlags) - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QPAINTENGINE_H |