/**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the QtGui module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** 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.0, 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 are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QPICTURE_P_H #define QPICTURE_P_H // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists purely as an // implementation detail. This header file may change from version to // version without notice, or even be removed. // // We mean it. // #include "QtCore/qatomic.h" #include "QtCore/qbuffer.h" #include "QtCore/qobjectdefs.h" #include "QtGui/qpicture.h" #include "QtGui/qpixmap.h" #include "QtGui/qpen.h" #include "QtGui/qbrush.h" #include "QtCore/qrect.h" #include "private/qobject_p.h" QT_BEGIN_NAMESPACE class QPaintEngine; extern const char *qt_mfhdr_tag; class Q_GUI_EXPORT QPicturePrivate { Q_DECLARE_PUBLIC(QPicture) friend class QPicturePaintEngine; friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &s, const QPicture &r); friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &s, QPicture &r); public: enum PaintCommand { PdcNOP = 0, // PdcDrawPoint = 1, // point PdcDrawFirst = PdcDrawPoint, PdcMoveTo = 2, // point PdcLineTo = 3, // point PdcDrawLine = 4, // point,point PdcDrawRect = 5, // rect PdcDrawRoundRect = 6, // rect,ival,ival PdcDrawEllipse = 7, // rect PdcDrawArc = 8, // rect,ival,ival PdcDrawPie = 9, // rect,ival,ival PdcDrawChord = 10, // rect,ival,ival PdcDrawLineSegments = 11, // ptarr PdcDrawPolyline = 12, // ptarr PdcDrawPolygon = 13, // ptarr,ival PdcDrawCubicBezier = 14, // ptarr PdcDrawText = 15, // point,str PdcDrawTextFormatted = 16, // rect,ival,str PdcDrawPixmap = 17, // rect,pixmap PdcDrawImage = 18, // rect,image PdcDrawText2 = 19, // point,str PdcDrawText2Formatted = 20, // rect,ival,str PdcDrawTextItem = 21, // pos,text,font,flags PdcDrawLast = PdcDrawTextItem, PdcDrawPoints = 22, // ptarr,ival,ival PdcDrawWinFocusRect = 23, // rect,color PdcDrawTiledPixmap = 24, // rect,pixmap,point PdcDrawPath = 25, // path // no painting commands below PdcDrawLast. PdcBegin = 30, // PdcEnd = 31, // PdcSave = 32, // PdcRestore = 33, // PdcSetdev = 34, // device - PRIVATE PdcSetBkColor = 40, // color PdcSetBkMode = 41, // ival PdcSetROP = 42, // ival PdcSetBrushOrigin = 43, // point PdcSetFont = 45, // font PdcSetPen = 46, // pen PdcSetBrush = 47, // brush PdcSetTabStops = 48, // ival PdcSetTabArray = 49, // ival,ivec PdcSetUnit = 50, // ival PdcSetVXform = 51, // ival PdcSetWindow = 52, // rect PdcSetViewport = 53, // rect PdcSetWXform = 54, // ival PdcSetWMatrix = 55, // matrix,ival PdcSaveWMatrix = 56, PdcRestoreWMatrix = 57, PdcSetClip = 60, // ival PdcSetClipRegion = 61, // rgn PdcSetClipPath = 62, // path PdcSetRenderHint = 63, // ival PdcSetCompositionMode = 64, // ival PdcSetClipEnabled = 65, // bool PdcSetOpacity = 66, // qreal PdcReservedStart = 0, // codes 0-199 are reserved PdcReservedStop = 199 // for Qt }; inline QPicturePrivate() : in_memory_only(false), q_ptr(0) { ref = 1; } QAtomicInt ref; bool checkFormat(); void resetFormat(); QBuffer pictb; int trecs; bool formatOk; int formatMajor; int formatMinor; QRect brect; QRect override_rect; QPaintEngine *paintEngine; bool in_memory_only; QList image_list; QList pixmap_list; QList brush_list; QList pen_list; QPicture *q_ptr; }; QT_END_NAMESPACE #endif // QPICTURE_P_H