Skip to content
Snippets Groups Projects
qwt_plot_grid.h 2.38 KiB
Newer Older
  • Learn to ignore specific revisions
  • pixhawk's avatar
    pixhawk committed
    /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
     * Qwt Widget Library
     * Copyright (C) 1997   Josef Wilgen
     * Copyright (C) 2002   Uwe Rathmann
    
    pixhawk's avatar
    pixhawk committed
     * 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"
    #include "qwt_scale_div.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
    
    Bryant's avatar
    Bryant committed
      and horizontal grid lines. The locations of the grid lines
    
    pixhawk's avatar
    pixhawk committed
      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;
    
    
    Bryant's avatar
    Bryant committed
        void enableX( bool tf );
    
    pixhawk's avatar
    pixhawk committed
        bool xEnabled() const;
    
    
    Bryant's avatar
    Bryant committed
        void enableY( bool tf );
    
    pixhawk's avatar
    pixhawk committed
        bool yEnabled() const;
    
    
    Bryant's avatar
    Bryant committed
        void enableXMin( bool tf );
    
    pixhawk's avatar
    pixhawk committed
        bool xMinEnabled() const;
    
    
    Bryant's avatar
    Bryant committed
        void enableYMin( bool tf );
    
    pixhawk's avatar
    pixhawk committed
        bool yMinEnabled() const;
    
    
    Bryant's avatar
    Bryant committed
        void setXDiv( const QwtScaleDiv &sx );
    
    pixhawk's avatar
    pixhawk committed
        const QwtScaleDiv &xScaleDiv() const;
    
    
    Bryant's avatar
    Bryant committed
        void setYDiv( const QwtScaleDiv &sy );
    
    pixhawk's avatar
    pixhawk committed
        const QwtScaleDiv &yScaleDiv() const;
    
    
    Bryant's avatar
    Bryant committed
        void setPen( const QColor &, qreal width = 0.0, Qt::PenStyle = Qt::SolidLine );
        void setPen( const QPen & );
    
    pixhawk's avatar
    pixhawk committed
    
    
    Bryant's avatar
    Bryant committed
        void setMajorPen( const QColor &, qreal width = 0.0, Qt::PenStyle = Qt::SolidLine );
        void setMajorPen( const QPen & );
        const QPen& majorPen() const;
    
    pixhawk's avatar
    pixhawk committed
    
    
    Bryant's avatar
    Bryant committed
        void setMinorPen( const QColor &, qreal width = 0.0, Qt::PenStyle = Qt::SolidLine );
        void setMinorPen( const QPen &p );
        const QPen& minorPen() const;
    
    pixhawk's avatar
    pixhawk committed
    
    
    Bryant's avatar
    Bryant committed
        virtual void draw( QPainter *p,
            const QwtScaleMap &xMap, const QwtScaleMap &yMap,
            const QRectF &rect ) const;
    
    pixhawk's avatar
    pixhawk committed
    
    
    Bryant's avatar
    Bryant committed
        virtual void updateScaleDiv( 
            const QwtScaleDiv &xMap, const QwtScaleDiv &yMap );
    
    pixhawk's avatar
    pixhawk committed
    
    private:
    
    Bryant's avatar
    Bryant committed
        void drawLines( QPainter *painter, const QRectF &,
            Qt::Orientation orientation, const QwtScaleMap &,
            const QList<double> & ) const;
    
    pixhawk's avatar
    pixhawk committed
    
        class PrivateData;
        PrivateData *d_data;
    };
    
    #endif