#ifndef PYTHONQTWRAPPER_QPAINTENGINE_H #define PYTHONQTWRAPPER_QPAINTENGINE_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class PythonQtShell_QPaintEngine : public QPaintEngine { public: PythonQtShell_QPaintEngine(QPaintEngine::PaintEngineFeatures features = 0):QPaintEngine(features),_wrapper(NULL) {}; virtual bool begin(QPaintDevice* pdev); virtual QPoint coordinateOffset() const; virtual void drawEllipse(const QRect& r); virtual void drawEllipse(const QRectF& r); virtual void drawImage(const QRectF& r, const QImage& pm, const QRectF& sr, Qt::ImageConversionFlags flags = Qt::AutoColor); virtual void drawLines(const QLine* lines, int lineCount); virtual void drawLines(const QLineF* lines, int lineCount); virtual void drawPath(const QPainterPath& path); virtual void drawPixmap(const QRectF& r, const QPixmap& pm, const QRectF& sr); virtual void drawPoints(const QPoint* points, int pointCount); virtual void drawPoints(const QPointF* points, int pointCount); virtual void drawPolygon(const QPoint* points, int pointCount, QPaintEngine::PolygonDrawMode mode); virtual void drawPolygon(const QPointF* points, int pointCount, QPaintEngine::PolygonDrawMode mode); virtual void drawRects(const QRect* rects, int rectCount); virtual void drawRects(const QRectF* rects, int rectCount); virtual void drawTextItem(const QPointF& p, const QTextItem& textItem); virtual void drawTiledPixmap(const QRectF& r, const QPixmap& pixmap, const QPointF& s); virtual bool end(); virtual QPaintEngine::Type type() const; virtual void updateState(const QPaintEngineState& state); PythonQtInstanceWrapper* _wrapper; }; class PythonQtPublicPromoter_QPaintEngine : public QPaintEngine { public: inline void promoted_drawTextItem(const QPointF& p, const QTextItem& textItem) { QPaintEngine::drawTextItem(p, textItem); } inline void promoted_drawRects(const QRect* rects, int rectCount) { QPaintEngine::drawRects(rects, rectCount); } inline void promoted_drawEllipse(const QRect& r) { QPaintEngine::drawEllipse(r); } inline void promoted_drawPoints(const QPointF* points, int pointCount) { QPaintEngine::drawPoints(points, pointCount); } inline void promoted_drawLines(const QLineF* lines, int lineCount) { QPaintEngine::drawLines(lines, lineCount); } inline void promoted_drawRects(const QRectF* rects, int rectCount) { QPaintEngine::drawRects(rects, rectCount); } inline QPoint promoted_coordinateOffset() const { return QPaintEngine::coordinateOffset(); } inline void promoted_drawEllipse(const QRectF& r) { QPaintEngine::drawEllipse(r); } inline void promoted_drawPolygon(const QPoint* points, int pointCount, QPaintEngine::PolygonDrawMode mode) { QPaintEngine::drawPolygon(points, pointCount, mode); } inline void promoted_drawPath(const QPainterPath& path) { QPaintEngine::drawPath(path); } inline void promoted_drawTiledPixmap(const QRectF& r, const QPixmap& pixmap, const QPointF& s) { QPaintEngine::drawTiledPixmap(r, pixmap, s); } inline void promoted_drawImage(const QRectF& r, const QImage& pm, const QRectF& sr, Qt::ImageConversionFlags flags = Qt::AutoColor) { QPaintEngine::drawImage(r, pm, sr, flags); } inline void promoted_drawLines(const QLine* lines, int lineCount) { QPaintEngine::drawLines(lines, lineCount); } inline void promoted_drawPoints(const QPoint* points, int pointCount) { QPaintEngine::drawPoints(points, pointCount); } inline void promoted_drawPolygon(const QPointF* points, int pointCount, QPaintEngine::PolygonDrawMode mode) { QPaintEngine::drawPolygon(points, pointCount, mode); } }; class PythonQtWrapper_QPaintEngine : public QObject { Q_OBJECT public: Q_ENUMS(PolygonDrawMode Type PaintEngineFeature DirtyFlag ) Q_FLAGS(PaintEngineFeatures DirtyFlags ) enum PolygonDrawMode{ OddEvenMode = QPaintEngine::OddEvenMode, WindingMode = QPaintEngine::WindingMode, ConvexMode = QPaintEngine::ConvexMode, PolylineMode = QPaintEngine::PolylineMode}; enum Type{ X11 = QPaintEngine::X11, Windows = QPaintEngine::Windows, QuickDraw = QPaintEngine::QuickDraw, CoreGraphics = QPaintEngine::CoreGraphics, MacPrinter = QPaintEngine::MacPrinter, QWindowSystem = QPaintEngine::QWindowSystem, PostScript = QPaintEngine::PostScript, OpenGL = QPaintEngine::OpenGL, Picture = QPaintEngine::Picture, SVG = QPaintEngine::SVG, Raster = QPaintEngine::Raster, Direct3D = QPaintEngine::Direct3D, Pdf = QPaintEngine::Pdf, User = QPaintEngine::User, MaxUser = QPaintEngine::MaxUser}; enum PaintEngineFeature{ PrimitiveTransform = QPaintEngine::PrimitiveTransform, PatternTransform = QPaintEngine::PatternTransform, PixmapTransform = QPaintEngine::PixmapTransform, PatternBrush = QPaintEngine::PatternBrush, LinearGradientFill = QPaintEngine::LinearGradientFill, RadialGradientFill = QPaintEngine::RadialGradientFill, ConicalGradientFill = QPaintEngine::ConicalGradientFill, AlphaBlend = QPaintEngine::AlphaBlend, PorterDuff = QPaintEngine::PorterDuff, PainterPaths = QPaintEngine::PainterPaths, Antialiasing = QPaintEngine::Antialiasing, BrushStroke = QPaintEngine::BrushStroke, ConstantOpacity = QPaintEngine::ConstantOpacity, MaskedBrush = QPaintEngine::MaskedBrush, PerspectiveTransform = QPaintEngine::PerspectiveTransform, BlendModes = QPaintEngine::BlendModes, ObjectBoundingModeGradients = QPaintEngine::ObjectBoundingModeGradients, PaintOutsidePaintEvent = QPaintEngine::PaintOutsidePaintEvent, AllFeatures = QPaintEngine::AllFeatures}; enum DirtyFlag{ DirtyPen = QPaintEngine::DirtyPen, DirtyBrush = QPaintEngine::DirtyBrush, DirtyBrushOrigin = QPaintEngine::DirtyBrushOrigin, DirtyFont = QPaintEngine::DirtyFont, DirtyBackground = QPaintEngine::DirtyBackground, DirtyBackgroundMode = QPaintEngine::DirtyBackgroundMode, DirtyTransform = QPaintEngine::DirtyTransform, DirtyClipRegion = QPaintEngine::DirtyClipRegion, DirtyClipPath = QPaintEngine::DirtyClipPath, DirtyHints = QPaintEngine::DirtyHints, DirtyCompositionMode = QPaintEngine::DirtyCompositionMode, DirtyClipEnabled = QPaintEngine::DirtyClipEnabled, DirtyOpacity = QPaintEngine::DirtyOpacity, AllDirty = QPaintEngine::AllDirty}; Q_DECLARE_FLAGS(PaintEngineFeatures, PaintEngineFeature) Q_DECLARE_FLAGS(DirtyFlags, DirtyFlag) public slots: QPaintEngine* new_QPaintEngine(QPaintEngine::PaintEngineFeatures features = 0); void delete_QPaintEngine(QPaintEngine* obj) { delete obj; } void drawTextItem(QPaintEngine* theWrappedObject, const QPointF& p, const QTextItem& textItem); void setActive(QPaintEngine* theWrappedObject, bool newState); void drawRects(QPaintEngine* theWrappedObject, const QRect* rects, int rectCount); void setDirty(QPaintEngine* theWrappedObject, QPaintEngine::DirtyFlags df); QRegion systemClip(QPaintEngine* theWrappedObject) const; void drawEllipse(QPaintEngine* theWrappedObject, const QRect& r); void syncState(QPaintEngine* theWrappedObject); void drawPoints(QPaintEngine* theWrappedObject, const QPointF* points, int pointCount); bool hasFeature(QPaintEngine* theWrappedObject, QPaintEngine::PaintEngineFeatures feature) const; void drawLines(QPaintEngine* theWrappedObject, const QLineF* lines, int lineCount); bool testDirty(QPaintEngine* theWrappedObject, QPaintEngine::DirtyFlags df); void drawRects(QPaintEngine* theWrappedObject, const QRectF* rects, int rectCount); QPainter* painter(QPaintEngine* theWrappedObject) const; QRect systemRect(QPaintEngine* theWrappedObject) const; QPoint coordinateOffset(QPaintEngine* theWrappedObject) const; void drawEllipse(QPaintEngine* theWrappedObject, const QRectF& r); void drawPolygon(QPaintEngine* theWrappedObject, const QPoint* points, int pointCount, QPaintEngine::PolygonDrawMode mode); void drawPath(QPaintEngine* theWrappedObject, const QPainterPath& path); void drawTiledPixmap(QPaintEngine* theWrappedObject, const QRectF& r, const QPixmap& pixmap, const QPointF& s); void drawImage(QPaintEngine* theWrappedObject, const QRectF& r, const QImage& pm, const QRectF& sr, Qt::ImageConversionFlags flags = Qt::AutoColor); void drawLines(QPaintEngine* theWrappedObject, const QLine* lines, int lineCount); void setSystemClip(QPaintEngine* theWrappedObject, const QRegion& baseClip); void clearDirty(QPaintEngine* theWrappedObject, QPaintEngine::DirtyFlags df); QPaintDevice* paintDevice(QPaintEngine* theWrappedObject) const; void setSystemRect(QPaintEngine* theWrappedObject, const QRect& rect); void drawPoints(QPaintEngine* theWrappedObject, const QPoint* points, int pointCount); void drawPolygon(QPaintEngine* theWrappedObject, const QPointF* points, int pointCount, QPaintEngine::PolygonDrawMode mode); bool isActive(QPaintEngine* theWrappedObject) const; }; #endif // PYTHONQTWRAPPER_QPAINTENGINE_H