Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members | Related Pages

qwt_painter.h

Go to the documentation of this file.
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2002   Uwe Rathmann
00005  * 
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
00008  *****************************************************************************/
00009 
00010 #ifndef QWT_PAINTER_H
00011 #define QWT_PAINTER_H
00012 
00013 #include <qpoint.h>
00014 #include <qpointarray.h>
00015 #include <qrect.h>
00016 #include "qwt_global.h"
00017 
00018 class QPainter;
00019 class QPaintDevice;
00020 class QWMatrix;
00021 
00022 #if defined(Q_WS_X11)
00023 // Warning: Don't care about wrong QCOORD_MIN, QCOORD_MAX on X11.
00024 #define QWT_COORD_MAX 16384
00025 #define QWT_COORD_MIN (-QWT_COORD_MAX - 1)
00026 #else
00027 #define QWT_COORD_MAX QCOORD_MAX
00028 #define QWT_COORD_MIN QCOORD_MIN
00029 #endif
00030 
00051 class QWT_EXPORT QwtPainter
00052 {
00053 public:
00054     static void setScaleMetrics(const QPaintDevice *, const QPaintDevice *);
00055     static void resetScaleMetrics();
00056     static double scaleMetricsX();
00057     static double scaleMetricsY();
00058 
00059     static void setDeviceClipping(bool);
00060     static bool deviceClipping();
00061 
00062     static QRect invScale(const QRect &, const QPainter * = NULL);
00063     static QPoint invScale(const QPoint &, const QPainter * = NULL);
00064     static QRect scale(const QRect &, const QPainter * = NULL);
00065     static QPoint scale(const QPoint &, const QPainter * = NULL);
00066     static QPointArray scale(const QPointArray &, const QPainter * = NULL);
00067     
00068     static void setClipRect(QPainter *, const QRect &);
00069 
00070     static void drawText(QPainter *, int x, int y, 
00071         const QString &, int len = -1);
00072     static void drawText(QPainter *, const QPoint &, 
00073         const QString &, int len = -1);
00074     static void drawText(QPainter *, int x, int y, int w, int h, 
00075         int flags, const QString &, int len = -1);
00076     static void drawText(QPainter *, const QRect &, 
00077         int flags, const QString &, int len = -1);
00078 
00079     static void drawRect(QPainter *, int x, int y, int w, int h);
00080     static void drawRect(QPainter *, const QRect &rect);
00081     static void fillRect(QPainter *, const QRect &, const QBrush &); 
00082 
00083     static void drawEllipse(QPainter *, const QRect &);
00084 
00085     static void drawLine(QPainter *, int x1, int y1, int x2, int y2);
00086     static void drawLine(QPainter *, const QPoint &p1, const QPoint &p2);
00087     static void drawPolygon(QPainter *, const QPointArray &pa);
00088     static void drawPolyline(QPainter *, const QPointArray &pa);
00089     static void drawPoint(QPainter *, int x, int y);
00090 
00091   static QRect map(const QWMatrix &, const QRect &);
00092   static QPointArray map(const QWMatrix &, const QPointArray &);
00093 
00094   static void drawRoundFrame(QPainter *, const QRect &,
00095       int width, bool sunken);
00096 
00097 private:
00098   static const QRect &deviceClipRect();
00099 
00100     static bool insideEdge( const QPoint &p, const QRect &r, int edge );
00101     static QPoint intersectEdge(const QPoint &p1, const QPoint &p2,
00102         const QRect &r, int edge );
00103     static QPointArray clipPolyline(const QRect &r,
00104         const QPointArray &pa, int &index, int &npoints );
00105     static QPointArray clip(const QPointArray &);
00106 
00107     static bool d_deviceClipping;
00108     static double d_scaleMetricsX;
00109     static double d_scaleMetricsY;
00110 };
00111 
00112 #endif

Generated on Fri Nov 7 14:11:45 2003 for Qwt Developer's Guide by doxygen 1.3.2