qwt_round_scale_draw.h 1.91 KB
Newer Older
pixhawk's avatar
pixhawk committed
1 2 3 4
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
 * Qwt Widget Library
 * Copyright (C) 1997   Josef Wilgen
 * Copyright (C) 2002   Uwe Rathmann
5
 *
pixhawk's avatar
pixhawk committed
6 7 8 9 10 11 12 13 14
 * 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_ROUND_SCALE_DRAW_H
#define QWT_ROUND_SCALE_DRAW_H

#include "qwt_global.h"
#include "qwt_abstract_scale_draw.h"
Bryant's avatar
Bryant committed
15
#include <qpoint.h>
pixhawk's avatar
pixhawk committed
16 17 18 19 20

/*!
  \brief A class for drawing round scales

  QwtRoundScaleDraw can be used to draw round scales.
Bryant's avatar
Bryant committed
21
  The circle segment can be adjusted by setAngleRange().
22
  The geometry of the scale can be specified with
Bryant's avatar
Bryant committed
23
  moveCenter() and setRadius().
pixhawk's avatar
pixhawk committed
24 25 26 27 28 29 30 31 32 33 34 35

  After a scale division has been specified as a QwtScaleDiv object
  using QwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &s),
  the scale can be drawn with the QwtAbstractScaleDraw::draw() member.
*/

class QWT_EXPORT QwtRoundScaleDraw: public QwtAbstractScaleDraw
{
public:
    QwtRoundScaleDraw();
    virtual ~QwtRoundScaleDraw();

Bryant's avatar
Bryant committed
36 37
    void setRadius( double radius );
    double radius() const;
pixhawk's avatar
pixhawk committed
38

Bryant's avatar
Bryant committed
39 40 41
    void moveCenter( double x, double y );
    void moveCenter( const QPointF & );
    QPointF center() const;
pixhawk's avatar
pixhawk committed
42

Bryant's avatar
Bryant committed
43
    void setAngleRange( double angle1, double angle2 );
pixhawk's avatar
pixhawk committed
44

Bryant's avatar
Bryant committed
45
    virtual double extent( const QFont & ) const;
pixhawk's avatar
pixhawk committed
46 47

protected:
Bryant's avatar
Bryant committed
48 49 50
    virtual void drawTick( QPainter *, double val, double len ) const;
    virtual void drawBackbone( QPainter * ) const;
    virtual void drawLabel( QPainter *, double val ) const;
pixhawk's avatar
pixhawk committed
51 52

private:
Bryant's avatar
Bryant committed
53 54 55
    QwtRoundScaleDraw( const QwtRoundScaleDraw & );
    QwtRoundScaleDraw &operator=( const QwtRoundScaleDraw &other );

pixhawk's avatar
pixhawk committed
56 57 58 59
    class PrivateData;
    PrivateData *d_data;
};

Bryant's avatar
Bryant committed
60 61
//! Move the center of the scale draw, leaving the radius unchanged
inline void QwtRoundScaleDraw::moveCenter( double x, double y )
pixhawk's avatar
pixhawk committed
62
{
Bryant's avatar
Bryant committed
63
    moveCenter( QPointF( x, y ) );
pixhawk's avatar
pixhawk committed
64 65 66
}

#endif