src/gui/painting/qpainter.h
changeset 30 5dc02b23752f
parent 18 2f34d5167611
--- a/src/gui/painting/qpainter.h	Wed Jun 23 19:07:03 2010 +0300
+++ b/src/gui/painting/qpainter.h	Tue Jul 06 15:10:48 2010 +0300
@@ -78,6 +78,7 @@
 class QTextItem;
 class QMatrix;
 class QTransform;
+class QStaticText;
 
 class QPainterPrivateDeleter;
 
@@ -98,6 +99,29 @@
 
     Q_DECLARE_FLAGS(RenderHints, RenderHint)
 
+    class PixmapFragment {
+    public:
+        qreal x;
+        qreal y;
+        qreal sourceLeft;
+        qreal sourceTop;
+        qreal width;
+        qreal height;
+        qreal scaleX;
+        qreal scaleY;
+        qreal rotation;
+        qreal opacity;
+        static PixmapFragment Q_GUI_EXPORT create(const QPointF &pos, const QRectF &sourceRect,
+                                            qreal scaleX = 1, qreal scaleY = 1,
+                                            qreal rotation = 0, qreal opacity = 1);
+    };
+
+    enum PixmapFragmentHint {
+        OpaqueHint = 0x01
+    };
+
+    Q_DECLARE_FLAGS(PixmapFragmentHints, PixmapFragmentHint)
+
     QPainter();
     explicit QPainter(QPaintDevice *);
     ~QPainter();
@@ -351,6 +375,9 @@
     inline void drawPixmap(const QRect &r, const QPixmap &pm);
     inline void drawPixmap(int x, int y, int w, int h, const QPixmap &pm);
 
+    void drawPixmapFragments(const PixmapFragment *fragments, int fragmentCount,
+                             const QPixmap &pixmap, PixmapFragmentHints hints = 0);
+
     void drawImage(const QRectF &targetRect, const QImage &image, const QRectF &sourceRect,
                    Qt::ImageConversionFlags flags = Qt::AutoColor);
     inline void drawImage(const QRect &targetRect, const QImage &image, const QRect &sourceRect,
@@ -369,6 +396,10 @@
     void setLayoutDirection(Qt::LayoutDirection direction);
     Qt::LayoutDirection layoutDirection() const;
 
+    void drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText);
+    inline void drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText);
+    inline void drawStaticText(int left, int top, const QStaticText &staticText);
+
     void drawText(const QPointF &p, const QString &s);
     inline void drawText(const QPoint &p, const QString &s);
     inline void drawText(int x, int y, const QString &s);
@@ -896,6 +927,16 @@
         drawImage(QRectF(x, y, -1, -1), image, QRectF(sx, sy, sw, sh), flags);
 }
 
+inline void QPainter::drawStaticText(const QPoint &p, const QStaticText &staticText)
+{
+    drawStaticText(QPointF(p), staticText);
+}
+
+inline void QPainter::drawStaticText(int x, int y, const QStaticText &staticText)
+{
+    drawStaticText(QPointF(x, y), staticText);
+}
+
 inline void QPainter::drawTextItem(const QPoint &p, const QTextItem &ti)
 {
     drawTextItem(QPointF(p), ti);