src/gui/painting/qpainter.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 **
00003 ** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.
00004 **
00005 ** This file is part of the QtGui module of the Qt Toolkit.
00006 **
00007 ** This file may be used under the terms of the GNU General Public
00008 ** License version 2.0 as published by the Free Software Foundation
00009 ** and appearing in the file LICENSE.GPL included in the packaging of
00010 ** this file.  Please review the following information to ensure GNU
00011 ** General Public Licensing requirements will be met:
00012 ** http://www.trolltech.com/products/qt/opensource.html
00013 **
00014 ** If you are unsure which license is appropriate for your use, please
00015 ** review the following information:
00016 ** http://www.trolltech.com/products/qt/licensing.html or contact the
00017 ** sales department at sales@trolltech.com.
00018 **
00019 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00020 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00021 **
00022 ****************************************************************************/
00023 
00024 #ifndef QPAINTER_H
00025 #define QPAINTER_H
00026 
00027 #include <QtCore/qnamespace.h>
00028 #include <QtCore/qrect.h>
00029 #include <QtCore/qpoint.h>
00030 #include <QtGui/qpixmap.h>
00031 #include <QtGui/qimage.h>
00032 #include <QtGui/qtextoption.h>
00033 #include <QtGui/qdrawutil.h>
00034 
00035 #ifndef QT_INCLUDE_COMPAT
00036 #include <QtGui/qpolygon.h>
00037 #include <QtGui/qpen.h>
00038 #include <QtGui/qbrush.h>
00039 #include <QtGui/qmatrix.h>
00040 #include <QtGui/qfontinfo.h>
00041 #include <QtGui/qfontmetrics.h>
00042 #endif
00043 
00044 QT_BEGIN_HEADER
00045 
00046 QT_MODULE(Gui)
00047 
00048 class QBrush;
00049 class QFontInfo;
00050 class QFontMetrics;
00051 class QPaintDevice;
00052 class QPainterPath;
00053 class QPainterPrivate;
00054 class QPen;
00055 class QPolygon;
00056 class QTextItem;
00057 class QMatrix;
00058 
00059 class Q_GUI_EXPORT QPainter
00060 {
00061     Q_DECLARE_PRIVATE(QPainter)
00062     Q_GADGET
00063     Q_FLAGS(RenderHint RenderHints)
00064 
00065 public:
00066     enum RenderHint {
00067         Antialiasing = 0x01,
00068         TextAntialiasing = 0x02,
00069         SmoothPixmapTransform = 0x04
00070     };
00071 
00072     Q_DECLARE_FLAGS(RenderHints, RenderHint)
00073 
00074     QPainter();
00075     explicit QPainter(QPaintDevice *);
00076     ~QPainter();
00077 
00078     QPaintDevice *device() const;
00079 
00080     bool begin(QPaintDevice *);
00081     bool end();
00082     bool isActive() const;
00083 
00084     void initFrom(const QWidget *widget);
00085 
00086     enum CompositionMode {
00087         CompositionMode_SourceOver,
00088         CompositionMode_DestinationOver,
00089         CompositionMode_Clear,
00090         CompositionMode_Source,
00091         CompositionMode_Destination,
00092         CompositionMode_SourceIn,
00093         CompositionMode_DestinationIn,
00094         CompositionMode_SourceOut,
00095         CompositionMode_DestinationOut,
00096         CompositionMode_SourceAtop,
00097         CompositionMode_DestinationAtop,
00098         CompositionMode_Xor
00099     };
00100     void setCompositionMode(CompositionMode mode);
00101     CompositionMode compositionMode() const;
00102 
00103     const QFont &font() const;
00104     void setFont(const QFont &f);
00105 
00106     QFontMetrics fontMetrics() const;
00107     QFontInfo fontInfo() const;
00108 
00109     void setPen(const QColor &color);
00110     void setPen(const QPen &pen);
00111     void setPen(Qt::PenStyle style);
00112     const QPen &pen() const;
00113 
00114     void setBrush(const QBrush &brush);
00115     void setBrush(Qt::BrushStyle style);
00116     const QBrush &brush() const;
00117 
00118     // attributes/modes
00119     void setBackgroundMode(Qt::BGMode mode);
00120     Qt::BGMode backgroundMode() const;
00121 
00122     QPoint brushOrigin() const;
00123     inline void setBrushOrigin(int x, int y);
00124     inline void setBrushOrigin(const QPoint &);
00125     void setBrushOrigin(const QPointF &);
00126 
00127     void setBackground(const QBrush &bg);
00128     const QBrush &background() const;
00129 
00130     qreal opacity() const;
00131     void setOpacity(qreal opacity);
00132 
00133     // Clip functions
00134     QRegion clipRegion() const;
00135     QPainterPath clipPath() const;
00136 
00137     void setClipRect(const QRectF &, Qt::ClipOperation op = Qt::ReplaceClip);
00138 #ifdef QT_EXPERIMENTAL_REGIONS
00139     void setClipRect(const QRect &, Qt::ClipOperation op = Qt::ReplaceClip);
00140 #else
00141     inline void setClipRect(const QRect &, Qt::ClipOperation op = Qt::ReplaceClip);
00142 #endif
00143     inline void setClipRect(int x, int y, int w, int h, Qt::ClipOperation op = Qt::ReplaceClip);
00144 
00145     void setClipRegion(const QRegion &, Qt::ClipOperation op = Qt::ReplaceClip);
00146 
00147     void setClipPath(const QPainterPath &path, Qt::ClipOperation op = Qt::ReplaceClip);
00148 
00149     void setClipping(bool enable);
00150     bool hasClipping() const;
00151 
00152     void save();
00153     void restore();
00154 
00155     // XForm functions
00156     void setMatrix(const QMatrix &matrix, bool combine = false);
00157     const QMatrix &matrix() const;
00158     const QMatrix &deviceMatrix() const;
00159     void resetMatrix();
00160 
00161     void setWorldMatrix(const QMatrix &matrix, bool combine = false);
00162     const QMatrix &worldMatrix() const;
00163 
00164     QMatrix combinedMatrix() const;
00165 
00166     void setMatrixEnabled(bool enabled);
00167     bool matrixEnabled() const;
00168 
00169     void setWorldMatrixEnabled(bool enabled);
00170     bool worldMatrixEnabled() const;
00171 
00172     void scale(qreal sx, qreal sy);
00173     void shear(qreal sh, qreal sv);
00174     void rotate(qreal a);
00175 
00176     void translate(const QPointF &offset);
00177     inline void translate(const QPoint &offset);
00178     inline void translate(qreal dx, qreal dy);
00179 
00180     QRect window() const;
00181     void setWindow(const QRect &window);
00182     inline void setWindow(int x, int y, int w, int h);
00183 
00184     QRect viewport() const;
00185     void setViewport(const QRect &viewport);
00186     inline void setViewport(int x, int y, int w, int h);
00187 
00188     void setViewTransformEnabled(bool enable);
00189     bool viewTransformEnabled() const;
00190 
00191     // drawing functions
00192     void strokePath(const QPainterPath &path, const QPen &pen);
00193     void fillPath(const QPainterPath &path, const QBrush &brush);
00194     void drawPath(const QPainterPath &path);
00195 
00196     inline void drawPoint(const QPointF &pt);
00197     inline void drawPoint(const QPoint &p);
00198     inline void drawPoint(int x, int y);
00199 
00200     void drawPoints(const QPointF *points, int pointCount);
00201     inline void drawPoints(const QPolygonF &points);
00202     void drawPoints(const QPoint *points, int pointCount);
00203     inline void drawPoints(const QPolygon &points);
00204 
00205     inline void drawLine(const QLineF &line);
00206     inline void drawLine(const QLine &line);
00207     inline void drawLine(int x1, int y1, int x2, int y2);
00208     inline void drawLine(const QPoint &p1, const QPoint &p2);
00209     inline void drawLine(const QPointF &p1, const QPointF &p2);
00210 
00211     void drawLines(const QLineF *lines, int lineCount);
00212     inline void drawLines(const QVector<QLineF> &lines);
00213     void drawLines(const QPointF *pointPairs, int lineCount);
00214     inline void drawLines(const QVector<QPointF> &pointPairs);
00215     void drawLines(const QLine *lines, int lineCount);
00216     inline void drawLines(const QVector<QLine> &lines);
00217     void drawLines(const QPoint *pointPairs, int lineCount);
00218     inline void drawLines(const QVector<QPoint> &pointPairs);
00219 
00220     inline void drawRect(const QRectF &rect);
00221     inline void drawRect(int x1, int y1, int w, int h);
00222     inline void drawRect(const QRect &rect);
00223 
00224     void drawRects(const QRectF *rects, int rectCount);
00225     inline void drawRects(const QVector<QRectF> &rectangles);
00226     void drawRects(const QRect *rects, int rectCount);
00227     inline void drawRects(const QVector<QRect> &rectangles);
00228 
00229     void drawEllipse(const QRectF &r);
00230     void drawEllipse(const QRect &r);
00231     inline void drawEllipse(int x, int y, int w, int h);
00232 
00233     void drawPolyline(const QPointF *points, int pointCount);
00234     inline void drawPolyline(const QPolygonF &polyline);
00235     void drawPolyline(const QPoint *points, int pointCount);
00236     inline void drawPolyline(const QPolygon &polygon);
00237 
00238     void drawPolygon(const QPointF *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill);
00239     inline void drawPolygon(const QPolygonF &polygon, Qt::FillRule fillRule = Qt::OddEvenFill);
00240     void drawPolygon(const QPoint *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill);
00241     inline void drawPolygon(const QPolygon &polygon, Qt::FillRule fillRule = Qt::OddEvenFill);
00242 
00243     void drawConvexPolygon(const QPointF *points, int pointCount);
00244     inline void drawConvexPolygon(const QPolygonF &polygon);
00245     void drawConvexPolygon(const QPoint *points, int pointCount);
00246     inline void drawConvexPolygon(const QPolygon &polygon);
00247 
00248     void drawArc(const QRectF &rect, int a, int alen);
00249     inline void drawArc(const QRect &, int a, int alen);
00250     inline void drawArc(int x, int y, int w, int h, int a, int alen);
00251 
00252     void drawPie(const QRectF &rect, int a, int alen);
00253     inline void drawPie(int x, int y, int w, int h, int a, int alen);
00254     inline void drawPie(const QRect &, int a, int alen);
00255 
00256     void drawChord(const QRectF &rect, int a, int alen);
00257     inline void drawChord(int x, int y, int w, int h, int a, int alen);
00258     inline void drawChord(const QRect &, int a, int alen);
00259 
00260     void drawRoundRect(const QRectF &r, int xround = 25, int yround = 25);
00261     inline void drawRoundRect(int x, int y, int w, int h, int = 25, int = 25);
00262     inline void drawRoundRect(const QRect &r, int xround = 25, int yround = 25);
00263 
00264     void drawTiledPixmap(const QRectF &rect, const QPixmap &pm, const QPointF &offset = QPointF());
00265     inline void drawTiledPixmap(int x, int y, int w, int h, const QPixmap &, int sx=0, int sy=0);
00266     inline void drawTiledPixmap(const QRect &, const QPixmap &, const QPoint & = QPoint());
00267 #ifndef QT_NO_PICTURE
00268     void drawPicture(const QPointF &p, const QPicture &picture);
00269     inline void drawPicture(int x, int y, const QPicture &picture);
00270     inline void drawPicture(const QPoint &p, const QPicture &picture);
00271 #endif
00272 
00273     void drawPixmap(const QRectF &targetRect, const QPixmap &pixmap, const QRectF &sourceRect);
00274     inline void drawPixmap(const QRect &targetRect, const QPixmap &pixmap, const QRect &sourceRect);
00275     inline void drawPixmap(int x, int y, int w, int h, const QPixmap &pm,
00276                            int sx, int sy, int sw, int sh);
00277     inline void drawPixmap(int x, int y, const QPixmap &pm,
00278                            int sx, int sy, int sw, int sh);
00279     inline void drawPixmap(const QPointF &p, const QPixmap &pm, const QRectF &sr);
00280     inline void drawPixmap(const QPoint &p, const QPixmap &pm, const QRect &sr);
00281     inline void drawPixmap(const QPointF &p, const QPixmap &pm);
00282     inline void drawPixmap(const QPoint &p, const QPixmap &pm);
00283     inline void drawPixmap(int x, int y, const QPixmap &pm);
00284     inline void drawPixmap(const QRect &r, const QPixmap &pm);
00285     inline void drawPixmap(int x, int y, int w, int h, const QPixmap &pm);
00286 
00287     void drawImage(const QRectF &targetRect, const QImage &image, const QRectF &sourceRect,
00288                    Qt::ImageConversionFlags flags = Qt::AutoColor);
00289     inline void drawImage(const QRect &targetRect, const QImage &image, const QRect &sourceRect,
00290                           Qt::ImageConversionFlags flags = Qt::AutoColor);
00291     inline void drawImage(const QPointF &p, const QImage &image, const QRectF &sr,
00292                           Qt::ImageConversionFlags flags = Qt::AutoColor);
00293     inline void drawImage(const QPoint &p, const QImage &image, const QRect &sr,
00294                           Qt::ImageConversionFlags flags = Qt::AutoColor);
00295     inline void drawImage(const QRectF &r, const QImage &image);
00296     inline void drawImage(const QRect &r, const QImage &image);
00297     inline void drawImage(const QPointF &p, const QImage &image);
00298     inline void drawImage(const QPoint &p, const QImage &image);
00299     inline void drawImage(int x, int y, const QImage &image, int sx = 0, int sy = 0,
00300                           int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor);
00301 
00302     void setLayoutDirection(Qt::LayoutDirection direction);
00303     Qt::LayoutDirection layoutDirection() const;
00304 
00305     void drawText(const QPointF &p, const QString &s);
00306     inline void drawText(const QPoint &p, const QString &s);
00307     inline void drawText(int x, int y, const QString &s);
00308 
00309     void drawText(const QRectF &r, int flags, const QString &text, QRectF *br=0);
00310     void drawText(const QRect &r, int flags, const QString &text, QRect *br=0);
00311     inline void drawText(int x, int y, int w, int h, int flags, const QString &text, QRect *br=0);
00312 
00313     void drawText(const QRectF &r, const QString &text, const QTextOption &o = QTextOption());
00314 
00315     QRectF boundingRect(const QRectF &rect, int flags, const QString &text);
00316     QRect boundingRect(const QRect &rect, int flags, const QString &text);
00317     inline QRect boundingRect(int x, int y, int w, int h, int flags, const QString &text);
00318 
00319     QRectF boundingRect(const QRectF &rect, const QString &text, const QTextOption &o = QTextOption());
00320 
00321     void drawTextItem(const QPointF &p, const QTextItem &ti);
00322     inline void drawTextItem(int x, int y, const QTextItem &ti);
00323     inline void drawTextItem(const QPoint &p, const QTextItem &ti);
00324 
00325     void fillRect(const QRectF &, const QBrush &);
00326     inline void fillRect(int x, int y, int w, int h, const QBrush &);
00327     void fillRect(const QRect &, const QBrush &);
00328 
00329     void eraseRect(const QRectF &);
00330     inline void eraseRect(int x, int y, int w, int h);
00331     inline void eraseRect(const QRect &);
00332 
00333     void setRenderHint(RenderHint hint, bool on = true);
00334     void setRenderHints(RenderHints hints, bool on = true);
00335     RenderHints renderHints() const;
00336 
00337     QPaintEngine *paintEngine() const;
00338 
00339     static void setRedirected(const QPaintDevice *device, QPaintDevice *replacement,
00340                               const QPoint& offset = QPoint());
00341     static QPaintDevice *redirected(const QPaintDevice *device, QPoint *offset = 0);
00342     static void restoreRedirected(const QPaintDevice *device);
00343 
00344 #ifdef QT3_SUPPORT
00345 
00346     inline QT3_SUPPORT void setBackgroundColor(const QColor &color) { setBackground(color); }
00347     inline QT3_SUPPORT const QColor &backgroundColor() const { return background().color(); }
00348 
00349     inline QT3_SUPPORT void drawText(int x, int y, const QString &s, int pos, int len)
00350         { drawText(x, y, s.mid(pos, len)); }
00351     inline QT3_SUPPORT void drawText(const QPoint &p, const QString &s, int pos, int len)
00352         { drawText(p, s.mid(pos, len)); }
00353     inline QT3_SUPPORT void drawText(int x, int y, const QString &s, int len)
00354         { drawText(x, y, s.left(len)); }
00355     inline QT3_SUPPORT void drawText(const QPoint &p, const QString &s, int len)
00356         { drawText(p, s.left(len)); }
00357     inline QT3_SUPPORT void drawText(const QRect &r, int flags, const QString &str, int len, QRect *br=0)
00358         { drawText(r, flags, str.left(len), br); }
00359     inline QT3_SUPPORT void drawText(int x, int y, int w, int h, int flags, const QString &text, int len, QRect *br=0)
00360         { drawText(QRect(x, y, w, h), flags, text.left(len), br); }
00361     inline QT3_SUPPORT QRect boundingRect(const QRect &rect, int flags, const QString &text, int len)
00362         { return boundingRect(rect, flags, text.left(len)); }
00363     inline QT3_SUPPORT QRect boundingRect(int x, int y, int w, int h, int flags, const QString &text, int len)
00364         { return boundingRect(QRect(x, y, w, h), flags, text.left(len)); }
00365 
00366     inline QT3_SUPPORT bool begin(QPaintDevice *pdev, const QWidget *init)
00367         { bool ret = begin(pdev); initFrom(init); return ret; }
00368     QT3_SUPPORT void drawPoints(const QPolygon &pa, int index, int npoints = -1)
00369     { drawPoints(pa.constData() + index, npoints == -1 ? pa.size() - index : npoints); }
00370 
00371     QT3_SUPPORT void drawCubicBezier(const QPolygon &pa, int index = 0);
00372 
00373     QT3_SUPPORT void drawLineSegments(const QPolygon &points, int index = 0, int nlines = -1);
00374 
00375     inline QT3_SUPPORT void drawPolyline(const QPolygon &pa, int index, int npoints = -1)
00376     { drawPolyline(pa.constData() + index, npoints == -1 ? pa.size() - index : npoints); }
00377 
00378     inline QT3_SUPPORT void drawPolygon(const QPolygon &pa, bool winding, int index = 0, int npoints = -1)
00379     { drawPolygon(pa.constData() + index, npoints == -1 ? pa.size() - index : npoints,
00380                   winding ? Qt::WindingFill : Qt::OddEvenFill); }
00381 
00382     inline QT3_SUPPORT void drawPolygon(const QPolygonF &polygon, bool winding, int index = 0,
00383                                       int npoints = -1)
00384     { drawPolygon(polygon.constData() + index, npoints == -1 ? polygon.size() - index : npoints,
00385                   winding ? Qt::WindingFill : Qt::OddEvenFill); }
00386 
00387     inline QT3_SUPPORT void drawConvexPolygon(const QPolygonF &polygon, int index, int npoints = -1)
00388     { drawConvexPolygon(polygon.constData() + index, npoints == -1 ? polygon.size() - index : npoints); }
00389     inline QT3_SUPPORT void drawConvexPolygon(const QPolygon &pa, int index, int npoints = -1)
00390     { drawConvexPolygon(pa.constData() + index, npoints == -1 ? pa.size() - index : npoints); }
00391 
00392     static inline QT3_SUPPORT void redirect(QPaintDevice *pdev, QPaintDevice *replacement)
00393     { setRedirected(pdev, replacement); }
00394     static inline QT3_SUPPORT QPaintDevice *redirect(QPaintDevice *pdev)
00395     { return const_cast<QPaintDevice*>(redirected(pdev)); }
00396 
00397     inline QT3_SUPPORT void setWorldXForm(bool enabled) { setMatrixEnabled(enabled); }
00398     inline QT3_SUPPORT bool hasWorldXForm() const { return matrixEnabled(); }
00399     inline QT3_SUPPORT void resetXForm() { resetMatrix(); }
00400 
00401     inline QT3_SUPPORT void setViewXForm(bool enabled) { setViewTransformEnabled(enabled); }
00402     inline QT3_SUPPORT bool hasViewXForm() const { return viewTransformEnabled(); }
00403 
00404     QT3_SUPPORT void map(int x, int y, int *rx, int *ry) const;
00405     QT3_SUPPORT QPoint xForm(const QPoint &) const; // map virtual -> deviceb
00406     QT3_SUPPORT QRect xForm(const QRect &) const;
00407     QT3_SUPPORT QPolygon xForm(const QPolygon &) const;
00408     QT3_SUPPORT QPolygon xForm(const QPolygon &, int index, int npoints) const;
00409     QT3_SUPPORT QPoint xFormDev(const QPoint &) const; // map device -> virtual
00410     QT3_SUPPORT QRect xFormDev(const QRect &) const;
00411     QT3_SUPPORT QPolygon xFormDev(const QPolygon &) const;
00412     QT3_SUPPORT QPolygon xFormDev(const QPolygon &, int index, int npoints) const;
00413     QT3_SUPPORT qreal translationX() const;
00414     QT3_SUPPORT qreal translationY() const;
00415 #endif
00416 
00417 private:
00418     Q_DISABLE_COPY(QPainter)
00419     friend class Q3Painter;
00420 
00421     QPainterPrivate *d_ptr;
00422 
00423     friend class QFontEngine;
00424     friend class QFontEngineBox;
00425     friend class QFontEngineFT;
00426     friend class QFontEngineMac;
00427     friend class QFontEngineWin;
00428     friend class QFontEngineXLFD;
00429     friend class QWSManager;
00430     friend class QPaintEngine;
00431     friend class QX11PaintEngine;
00432     friend class QX11PaintEnginePrivate;
00433     friend class QWin32PaintEngine;
00434     friend class QWin32PaintEnginePrivate;
00435 };
00436 
00437 Q_DECLARE_OPERATORS_FOR_FLAGS(QPainter::RenderHints)
00438 
00439 //
00440 // functions
00441 //
00442 inline void QPainter::drawLine(const QLineF &l)
00443 {
00444     drawLines(&l, 1);
00445 }
00446 
00447 inline void QPainter::drawLine(const QLine &line)
00448 {
00449     drawLines(&line, 1);
00450 }
00451 
00452 inline void QPainter::drawLine(int x1, int y1, int x2, int y2)
00453 {
00454     QLine l(x1, y1, x2, y2);
00455     drawLines(&l, 1);
00456 }
00457 
00458 inline void QPainter::drawLine(const QPoint &p1, const QPoint &p2)
00459 {
00460     QLine l(p1, p2);
00461     drawLines(&l, 1);
00462 }
00463 
00464 inline void QPainter::drawLine(const QPointF &p1, const QPointF &p2)
00465 {
00466     drawLine(QLineF(p1, p2));
00467 }
00468 
00469 inline void QPainter::drawLines(const QVector<QLineF> &lines)
00470 {
00471     drawLines(lines.constData(), lines.size());
00472 }
00473 
00474 inline void QPainter::drawLines(const QVector<QLine> &lines)
00475 {
00476     drawLines(lines.constData(), lines.size());
00477 }
00478 
00479 inline void QPainter::drawLines(const QVector<QPointF> &pointPairs)
00480 {
00481     drawLines(pointPairs.constData(), pointPairs.size() / 2);
00482 }
00483 
00484 inline void QPainter::drawLines(const QVector<QPoint> &pointPairs)
00485 {
00486     drawLines(pointPairs.constData(), pointPairs.size() / 2);
00487 }
00488 
00489 inline void QPainter::drawPolyline(const QPolygonF &polyline)
00490 {
00491     drawPolyline(polyline.constData(), polyline.size());
00492 }
00493 
00494 inline void QPainter::drawPolyline(const QPolygon &polyline)
00495 {
00496     drawPolyline(polyline.constData(), polyline.size());
00497 }
00498 
00499 inline void QPainter::drawPolygon(const QPolygonF &polygon, Qt::FillRule fillRule)
00500 {
00501     drawPolygon(polygon.constData(), polygon.size(), fillRule);
00502 }
00503 
00504 inline void QPainter::drawPolygon(const QPolygon &polygon, Qt::FillRule fillRule)
00505 {
00506     drawPolygon(polygon.constData(), polygon.size(), fillRule);
00507 }
00508 
00509 inline void QPainter::drawConvexPolygon(const QPolygonF &poly)
00510 {
00511     drawConvexPolygon(poly.constData(), poly.size());
00512 }
00513 
00514 inline void QPainter::drawConvexPolygon(const QPolygon &poly)
00515 {
00516     drawConvexPolygon(poly.constData(), poly.size());
00517 }
00518 
00519 inline void QPainter::drawRect(const QRectF &rect)
00520 {
00521     drawRects(&rect, 1);
00522 }
00523 
00524 inline void QPainter::drawRect(int x, int y, int w, int h)
00525 {
00526     QRect r(x, y, w, h);
00527     drawRects(&r, 1);
00528 }
00529 
00530 inline void QPainter::drawRect(const QRect &r)
00531 {
00532     drawRects(&r, 1);
00533 }
00534 
00535 inline void QPainter::drawRects(const QVector<QRectF> &rects)
00536 {
00537     drawRects(rects.constData(), rects.size());
00538 }
00539 
00540 inline void QPainter::drawRects(const QVector<QRect> &rects)
00541 {
00542     drawRects(rects.constData(), rects.size());
00543 }
00544 
00545 inline void QPainter::drawPoint(const QPointF &p)
00546 {
00547     drawPoints(&p, 1);
00548 }
00549 
00550 inline void QPainter::drawPoint(int x, int y)
00551 {
00552     QPoint p(x, y);
00553     drawPoints(&p, 1);
00554 }
00555 
00556 inline void QPainter::drawPoint(const QPoint &p)
00557 {
00558     drawPoints(&p, 1);
00559 }
00560 
00561 inline void QPainter::drawPoints(const QPolygonF &points)
00562 {
00563     drawPoints(points.constData(), points.size());
00564 }
00565 
00566 inline void QPainter::drawPoints(const QPolygon &points)
00567 {
00568     drawPoints(points.constData(), points.size());
00569 }
00570 
00571 inline void QPainter::drawRoundRect(int x, int y, int w, int h, int xRnd, int yRnd)
00572 {
00573     drawRoundRect(QRectF(x, y, w, h), xRnd, yRnd);
00574 }
00575 
00576 inline void QPainter::drawRoundRect(const QRect &rect, int xRnd, int yRnd)
00577 {
00578     drawRoundRect(QRectF(rect), xRnd, yRnd);
00579 }
00580 
00581 inline void QPainter::drawEllipse(int x, int y, int w, int h)
00582 {
00583     drawEllipse(QRect(x, y, w, h));
00584 }
00585 
00586 inline void QPainter::drawArc(const QRect &r, int a, int alen)
00587 {
00588     drawArc(QRectF(r), a, alen);
00589 }
00590 
00591 inline void QPainter::drawArc(int x, int y, int w, int h, int a, int alen)
00592 {
00593     drawArc(QRectF(x, y, w, h), a, alen);
00594 }
00595 
00596 inline void QPainter::drawPie(const QRect &rect, int a, int alen)
00597 {
00598     drawPie(QRectF(rect), a, alen);
00599 }
00600 
00601 inline void QPainter::drawPie(int x, int y, int w, int h, int a, int alen)
00602 {
00603     drawPie(QRectF(x, y, w, h), a, alen);
00604 }
00605 
00606 inline void QPainter::drawChord(const QRect &rect, int a, int alen)
00607 {
00608     drawChord(QRectF(rect), a, alen);
00609 }
00610 
00611 inline void QPainter::drawChord(int x, int y, int w, int h, int a, int alen)
00612 {
00613     drawChord(QRectF(x, y, w, h), a, alen);
00614 }
00615 
00616 inline void QPainter::setClipRect(int x, int y, int w, int h, Qt::ClipOperation op)
00617 {
00618 #ifdef QT_EXPERIMENTAL_REGIONS
00619     setClipRect(QRect(x, y, w, h), op);
00620 #else
00621     setClipRect(QRectF(x, y, w, h), op);
00622 #endif
00623 }
00624 
00625 #ifndef QT_EXPERIMENTAL_REGIONS
00626 inline void QPainter::setClipRect(const QRect &rect, Qt::ClipOperation op)
00627 {
00628     setClipRect(QRectF(rect), op);
00629 }
00630 #endif
00631 
00632 inline void QPainter::eraseRect(const QRect &rect)
00633 {
00634     eraseRect(QRectF(rect));
00635 }
00636 
00637 inline void QPainter::eraseRect(int x, int y, int w, int h)
00638 {
00639     eraseRect(QRectF(x, y, w, h));
00640 }
00641 
00642 inline void QPainter::fillRect(int x, int y, int w, int h, const QBrush &b)
00643 {
00644     fillRect(QRect(x, y, w, h), b);
00645 }
00646 
00647 inline void QPainter::setBrushOrigin(int x, int y)
00648 {
00649     setBrushOrigin(QPoint(x, y));
00650 }
00651 
00652 inline void QPainter::setBrushOrigin(const QPoint &p)
00653 {
00654     setBrushOrigin(QPointF(p));
00655 }
00656 
00657 inline void QPainter::drawTiledPixmap(const QRect &rect, const QPixmap &pm, const QPoint &offset)
00658 {
00659     drawTiledPixmap(QRectF(rect), pm, QPointF(offset));
00660 }
00661 
00662 inline void QPainter::drawTiledPixmap(int x, int y, int w, int h, const QPixmap &pm, int sx, int sy)
00663 {
00664     drawTiledPixmap(QRectF(x, y, w, h), pm, QPointF(sx, sy));
00665 }
00666 
00667 inline void QPainter::drawPixmap(const QRect &targetRect, const QPixmap &pixmap, const QRect &sourceRect)
00668 {
00669     drawPixmap(QRectF(targetRect), pixmap, QRectF(sourceRect));
00670 }
00671 
00672 inline void QPainter::drawPixmap(const QPointF &p, const QPixmap &pm)
00673 {
00674     drawPixmap(QRectF(p.x(), p.y(), -1, -1), pm, QRectF());
00675 }
00676 
00677 inline void QPainter::drawPixmap(const QPoint &p, const QPixmap &pm)
00678 {
00679     drawPixmap(QRectF(p.x(), p.y(), -1, -1), pm, QRectF());
00680 }
00681 
00682 inline void QPainter::drawPixmap(const QRect &r, const QPixmap &pm)
00683 {
00684     drawPixmap(QRectF(r), pm, QRectF());
00685 }
00686 
00687 inline void QPainter::drawPixmap(int x, int y, const QPixmap &pm)
00688 {
00689     drawPixmap(QRectF(x, y, -1, -1), pm, QRectF());
00690 }
00691 
00692 inline void QPainter::drawPixmap(int x, int y, int w, int h, const QPixmap &pm)
00693 {
00694     drawPixmap(QRectF(x, y, w, h), pm, QRectF());
00695 }
00696 
00697 inline void QPainter::drawPixmap(int x, int y, int w, int h, const QPixmap &pm,
00698                                  int sx, int sy, int sw, int sh)
00699 {
00700     drawPixmap(QRectF(x, y, w, h), pm, QRectF(sx, sy, sw, sh));
00701 }
00702 
00703 inline void QPainter::drawPixmap(int x, int y, const QPixmap &pm,
00704                                  int sx, int sy, int sw, int sh)
00705 {
00706     drawPixmap(QRectF(x, y, -1, -1), pm, QRectF(sx, sy, sw, sh));
00707 }
00708 
00709 inline void QPainter::drawPixmap(const QPointF &p, const QPixmap &pm, const QRectF &sr)
00710 {
00711     drawPixmap(QRectF(p.x(), p.y(), -1, -1), pm, sr);
00712 }
00713 
00714 inline void QPainter::drawPixmap(const QPoint &p, const QPixmap &pm, const QRect &sr)
00715 {
00716     drawPixmap(QRectF(p.x(), p.y(), -1, -1), pm, sr);
00717 }
00718 
00719 inline void QPainter::drawTextItem(int x, int y, const QTextItem &ti)
00720 {
00721     drawTextItem(QPointF(x, y), ti);
00722 }
00723 
00724 inline void QPainter::drawImage(const QRect &targetRect, const QImage &image, const QRect &sourceRect,
00725                                 Qt::ImageConversionFlags flags)
00726 {
00727     drawImage(QRectF(targetRect), image, QRectF(sourceRect), flags);
00728 }
00729 
00730 inline void QPainter::drawImage(const QPointF &p, const QImage &image, const QRectF &sr,
00731                                 Qt::ImageConversionFlags flags)
00732 {
00733     drawImage(QRectF(p.x(), p.y(), -1, -1), image, sr, flags);
00734 }
00735 
00736 inline void QPainter::drawImage(const QPoint &p, const QImage &image, const QRect &sr,
00737                                 Qt::ImageConversionFlags flags)
00738 {
00739     drawImage(QRect(p.x(), p.y(), -1, -1), image, sr, flags);
00740 }
00741 
00742 
00743 inline void QPainter::drawImage(const QRectF &r, const QImage &image)
00744 {
00745     drawImage(r, image, QRect(0, 0, image.width(), image.height()));
00746 }
00747 
00748 inline void QPainter::drawImage(const QRect &r, const QImage &image)
00749 {
00750     drawImage(r, image, QRectF(0, 0, image.width(), image.height()));
00751 }
00752 
00753 inline void QPainter::drawImage(const QPointF &p, const QImage &image)
00754 {
00755     drawImage(QRectF(p.x(), p.y(), -1, -1), image, QRectF(0, 0, image.width(), image.height()));
00756 }
00757 
00758 inline void QPainter::drawImage(const QPoint &p, const QImage &image)
00759 {
00760     drawImage(QRectF(p.x(), p.y(), -1, -1), image, QRectF(0, 0, image.width(), image.height()));
00761 }
00762 
00763 inline void QPainter::drawImage(int x, int y, const QImage &image, int sx, int sy, int sw, int sh,
00764                                 Qt::ImageConversionFlags flags)
00765 {
00766     drawImage(QRectF(x, y, -1, -1), image, QRectF(sx, sy, sw, sh), flags);
00767 }
00768 
00769 inline void QPainter::drawTextItem(const QPoint &p, const QTextItem &ti)
00770 {
00771     drawTextItem(QPointF(p), ti);
00772 }
00773 
00774 inline void QPainter::drawText(const QPoint &p, const QString &s)
00775 {
00776     drawText(QPointF(p), s);
00777 }
00778 
00779 inline void QPainter::drawText(int x, int y, int w, int h, int flags, const QString &str, QRect *br)
00780 {
00781     drawText(QRect(x, y, w, h), flags, str, br);
00782 }
00783 
00784 inline void QPainter::drawText(int x, int y, const QString &s)
00785 {
00786     drawText(QPointF(x, y), s);
00787 }
00788 
00789 inline QRect QPainter::boundingRect(int x, int y, int w, int h, int flags, const QString &text)
00790 {
00791     return boundingRect(QRect(x, y, w, h), flags, text);
00792 }
00793 
00794 inline void QPainter::translate(qreal dx, qreal dy)
00795 {
00796     translate(QPointF(dx, dy));
00797 }
00798 
00799 inline void QPainter::translate(const QPoint &offset)
00800 {
00801     translate(offset.x(), offset.y());
00802 }
00803 
00804 inline void QPainter::setViewport(int x, int y, int w, int h)
00805 {
00806     setViewport(QRect(x, y, w, h));
00807 }
00808 
00809 inline void QPainter::setWindow(int x, int y, int w, int h)
00810 {
00811     setWindow(QRect(x, y, w, h));
00812 }
00813 
00814 #ifndef QT_NO_PICTURE
00815 inline void QPainter::drawPicture(int x, int y, const QPicture &p)
00816 {
00817     drawPicture(QPoint(x, y), p);
00818 }
00819 
00820 inline void QPainter::drawPicture(const QPoint &pt, const QPicture &p)
00821 {
00822     drawPicture(QPointF(pt), p);
00823 }
00824 #endif
00825 
00826 QT_END_HEADER
00827 
00828 #endif // QPAINTER_H

Generated on Thu Mar 15 11:55:30 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1