# qwt_painter.h

    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 "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 class QPainterPath;
    00035
    00039 class QWT_EXPORT QwtPainter
    00040 {
    00041 public:
    00042     static void setPolylineSplitting( bool );
    00043     static bool polylineSplitting();
    00044
    00045     static void setRoundingAlignment( bool );
    00046     static bool roundingAlignment();
    00047     static bool roundingAlignment(QPainter *);
    00048
    00049     static void drawText( QPainter *, double x, double y, const QString & );
    00050     static void drawText( QPainter *, const QPointF &, const QString & );
    00051     static void drawText( QPainter *, double x, double y, double w, double h,
    00052         int flags, const QString & );
    00053     static void drawText( QPainter *, const QRectF &,
    00054         int flags, const QString & );
    00055
    00056 #ifndef QT_NO_RICHTEXT
    00057     static void drawSimpleRichText( QPainter *, const QRectF &,
    00058         int flags, const QTextDocument & );
    00059 #endif
    00060
    00061     static void drawRect( QPainter *, double x, double y, double w, double h );
    00062     static void drawRect( QPainter *, const QRectF &rect );
    00063     static void fillRect( QPainter *, const QRectF &, const QBrush & );
    00064
    00065     static void drawEllipse( QPainter *, const QRectF & );
    00066     static void drawPie( QPainter *, const QRectF & r, int a, int alen );
    00067
    00068     static void drawLine( QPainter *, double x1, double y1, double x2, double y2 );
    00069     static void drawLine( QPainter *, const QPointF &p1, const QPointF &p2 );
    00070     static void drawLine( QPainter *, const QLineF & );
    00071
    00072     static void drawPolygon( QPainter *, const QPolygonF &pa );
    00073     static void drawPolyline( QPainter *, const QPolygonF &pa );
    00074     static void drawPolyline( QPainter *, const QPointF *, int pointCount );
    00075
    00076     static void drawPoint( QPainter *, double x, double y );
    00077     static void drawPoint( QPainter *, const QPointF & );
    00078
    00079     static void drawPath( QPainter *, const QPainterPath & );
    00080     static void drawImage( QPainter *, const QRectF &, const QImage & );
    00081     static void drawPixmap( QPainter *, const QRectF &, const QPixmap & );
    00082
    00083     static void drawRoundedFrame( QPainter *,
    00084         const QRectF &, double xRadius, double yRadius,
    00085         const QPalette &, int lineWidth, int frameStyle );
    00086
    00087     static void drawFocusRect( QPainter *, QWidget * );
    00088     static void drawFocusRect( QPainter *, QWidget *, const QRect & );
    00089
    00090     static void drawColorBar( QPainter *painter,
    00091         const QwtColorMap &, const QwtInterval &,
    00092         const QwtScaleMap &, Qt::Orientation, const QRectF & );
    00093
    00094     static bool isAligning( QPainter *painter );
    00095
    00096 private:
    00097     static bool d_polylineSplitting;
    00098     static bool d_roundingAlignment;
    00099 };
    00100
    00102 inline void QwtPainter::drawPoint( QPainter *painter, double x, double y )
    00103 {
    00104     QwtPainter::drawPoint( painter, QPointF( x, y ) );
    00105 }
    00106
    00108 inline void QwtPainter::drawLine( QPainter *painter,
    00109     double x1, double y1, double x2, double y2 )
    00110 {
    00111     QwtPainter::drawLine( painter, QPointF( x1, y1 ), QPointF( x2, y2 ) );
    00112 }
    00113
    00115 inline void QwtPainter::drawLine( QPainter *painter, const QLineF &line )
    00116 {
    00117     QwtPainter::drawLine( painter, line.p1(), line.p2() );
    00118 }
    00119
    00124 inline bool QwtPainter::polylineSplitting()
    00125 {
    00126     return d_polylineSplitting;
    00127 }
    00128
    00136 inline bool QwtPainter::roundingAlignment()
    00137 {
    00138     return d_roundingAlignment;
    00139 }
    00140
    00145 inline bool QwtPainter::roundingAlignment(QPainter *painter)
    00146 {
    00147     return d_roundingAlignment && isAligning(painter);
    00148 }
    00149 #endif