/****************************************************************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_PLOT_GRID_H #define QWT_PLOT_GRID_H #include "qwt_global.h" #include "qwt_plot_item.h" class QPainter; class QPen; class QwtScaleMap; class QwtScaleDiv; /*! \brief A class which draws a coordinate grid The QwtPlotGrid class can be used to draw a coordinate grid. A coordinate grid consists of major and minor vertical and horizontal grid lines. The locations of the grid lines are determined by the X and Y scale divisions which can be assigned with setXDiv() and setYDiv(). The draw() member draws the grid within a bounding rectangle. */ class QWT_EXPORT QwtPlotGrid : public QwtPlotItem { public: explicit QwtPlotGrid(); virtual ~QwtPlotGrid(); virtual int rtti() const QWT_OVERRIDE; void enableX( bool ); bool xEnabled() const; void enableY( bool ); bool yEnabled() const; void enableXMin( bool ); bool xMinEnabled() const; void enableYMin( bool ); bool yMinEnabled() const; void setXDiv( const QwtScaleDiv& ); const QwtScaleDiv& xScaleDiv() const; void setYDiv( const QwtScaleDiv& ); const QwtScaleDiv& yScaleDiv() const; void setPen( const QColor&, qreal width = 0.0, Qt::PenStyle = Qt::SolidLine ); void setPen( const QPen& ); void setMajorPen( const QColor&, qreal width = 0.0, Qt::PenStyle = Qt::SolidLine ); void setMajorPen( const QPen& ); const QPen& majorPen() const; void setMinorPen( const QColor&, qreal width = 0.0, Qt::PenStyle = Qt::SolidLine ); void setMinorPen( const QPen& ); const QPen& minorPen() const; virtual void draw( QPainter*, const QwtScaleMap& xMap, const QwtScaleMap& yMap, const QRectF& canvasRect ) const QWT_OVERRIDE; virtual void updateScaleDiv( const QwtScaleDiv& xScaleDiv, const QwtScaleDiv& yScaleDiv ) QWT_OVERRIDE; private: void drawLines( QPainter*, const QRectF&, Qt::Orientation, const QwtScaleMap&, const QList< double >& ) const; class PrivateData; PrivateData* m_data; }; #endif