00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_PAINTER_H
00011 #define QWT_PAINTER_H
00012
00013 #include "qwt_global.h"
00014
00015 #include <qpoint.h>
00016 #include <qrect.h>
00017 #include <qpen.h>
00018 #include <qline.h>
00019
00020 class QPainter;
00021 class QBrush;
00022 class QColor;
00023 class QWidget;
00024 class QPolygonF;
00025 class QRectF;
00026 class QImage;
00027 class QPixmap;
00028 class QwtScaleMap;
00029 class QwtColorMap;
00030 class QwtInterval;
00031
00032 class QPalette;
00033 class QTextDocument;
00034
00038 class QWT_EXPORT QwtPainter
00039 {
00040 public:
00041 static void setPolylineSplitting( bool );
00042 static bool polylineSplitting();
00043
00044 static void setRoundingAlignment( bool );
00045 static bool roundingAlignment();
00046 static bool roundingAlignment(QPainter *);
00047
00048 static void drawText( QPainter *, double x, double y, const QString & );
00049 static void drawText( QPainter *, const QPointF &, const QString & );
00050 static void drawText( QPainter *, double x, double y, double w, double h,
00051 int flags, const QString & );
00052 static void drawText( QPainter *, const QRectF &,
00053 int flags, const QString & );
00054
00055 #ifndef QT_NO_RICHTEXT
00056 static void drawSimpleRichText( QPainter *, const QRectF &,
00057 int flags, const QTextDocument & );
00058 #endif
00059
00060 static void drawRect( QPainter *, double x, double y, double w, double h );
00061 static void drawRect( QPainter *, const QRectF &rect );
00062 static void fillRect( QPainter *, const QRectF &, const QBrush & );
00063
00064 static void drawEllipse( QPainter *, const QRectF & );
00065 static void drawPie( QPainter *, const QRectF & r, int a, int alen );
00066
00067 static void drawLine( QPainter *, double x1, double y1, double x2, double y2 );
00068 static void drawLine( QPainter *, const QPointF &p1, const QPointF &p2 );
00069 static void drawLine( QPainter *, const QLineF & );
00070
00071 static void drawPolygon( QPainter *, const QPolygonF &pa );
00072 static void drawPolyline( QPainter *, const QPolygonF &pa );
00073 static void drawPolyline( QPainter *, const QPointF *, int pointCount );
00074
00075 static void drawPoint( QPainter *, double x, double y );
00076 static void drawPoint( QPainter *, const QPointF & );
00077
00078 static void drawImage( QPainter *, const QRectF &, const QImage & );
00079 static void drawPixmap( QPainter *, const QRectF &, const QPixmap & );
00080
00081 static void drawRoundFrame( QPainter *, const QRect &,
00082 int width, const QPalette &, bool sunken );
00083 static void drawFocusRect( QPainter *, QWidget * );
00084 static void drawFocusRect( QPainter *, QWidget *, const QRect & );
00085
00086 static void drawColorBar( QPainter *painter,
00087 const QwtColorMap &, const QwtInterval &,
00088 const QwtScaleMap &, Qt::Orientation, const QRectF & );
00089
00090 static bool isAligning( QPainter *painter );
00091
00092 private:
00093 static void drawColoredArc( QPainter *, const QRect &,
00094 int peak, int arc, int intervall, const QColor &c1, const QColor &c2 );
00095
00096 static bool d_polylineSplitting;
00097 static bool d_roundingAlignment;
00098 };
00099
00101 inline void QwtPainter::drawPoint( QPainter *painter, double x, double y )
00102 {
00103 QwtPainter::drawPoint( painter, QPointF( x, y ) );
00104 }
00105
00107 inline void QwtPainter::drawLine( QPainter *painter,
00108 double x1, double y1, double x2, double y2 )
00109 {
00110 QwtPainter::drawLine( painter, QPointF( x1, y1 ), QPointF( x2, y2 ) );
00111 }
00112
00114 inline void QwtPainter::drawLine( QPainter *painter, const QLineF &line )
00115 {
00116 QwtPainter::drawLine( painter, line.p1(), line.p2() );
00117 }
00118
00123 inline bool QwtPainter::polylineSplitting()
00124 {
00125 return d_polylineSplitting;
00126 }
00127
00135 inline bool QwtPainter::roundingAlignment()
00136 {
00137 return d_roundingAlignment;
00138 }
00139
00144 inline bool QwtPainter::roundingAlignment(QPainter *painter)
00145 {
00146 return d_roundingAlignment && isAligning(painter);
00147 }
00148 #endif