blob: 9e02060b27f3920bc00679d10fd4c5cddc35e92b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
* 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_ROUND_SCALE_DRAW_H
#define QWT_ROUND_SCALE_DRAW_H
#include "qwt_global.h"
#include "qwt_abstract_scale_draw.h"
#include <qpoint.h>
class QPen;
/*!
\brief A class for drawing round scales
QwtRoundScaleDraw can be used to draw round scales.
The circle segment can be adjusted by QwtRoundScaleDraw::setAngleRange().
The geometry of the scale can be specified with
QwtRoundScaleDraw::moveCenter() and QwtRoundScaleDraw::setRadius().
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();
void setRadius( int radius );
int radius() const;
void moveCenter( double x, double y );
void moveCenter( const QPointF & );
QPointF center() const;
void setAngleRange( double angle1, double angle2 );
virtual double extent( const QFont & ) const;
protected:
virtual void drawTick( QPainter *p, double val, double len ) const;
virtual void drawBackbone( QPainter *p ) const;
virtual void drawLabel( QPainter *p, double val ) const;
private:
QwtRoundScaleDraw( const QwtRoundScaleDraw & );
QwtRoundScaleDraw &operator=( const QwtRoundScaleDraw &other );
class PrivateData;
PrivateData *d_data;
};
//! Move the center of the scale draw, leaving the radius unchanged
inline void QwtRoundScaleDraw::moveCenter( double x, double y )
{
moveCenter( QPointF( x, y ) );
}
#endif
|