QWT 7.0.1
Loading...
Searching...
No Matches
qwt_scale_draw.h
1/******************************************************************************
2 * Qwt Widget Library
3 * Copyright (C) 1997 Josef Wilgen
4 * Copyright (C) 2002 Uwe Rathmann
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the Qwt License, Version 1.0
8 *
9 * Modified by ChenZongYan in 2024 <czy.t@163.com>
10 * Summary of major modifications (see ChangeLog.md for full history):
11 * 1. CMake build system & C++11 throughout.
12 * 2. Core panner/ zoomer refactored:
13 * - QwtPanner → QwtCachePanner (pixmap-cache version)
14 * - New real-time QwtPlotPanner derived from QwtPicker.
15 * 3. Zoomer supports multi-axis.
16 * 4. Parasite-plot framework:
17 * - QwtFigure, QwtPlotParasiteLayout, QwtPlotTransparentCanvas,
18 * - QwtPlotScaleEventDispatcher, built-in pan/zoom on axis.
19 * 5. New picker: QwtPlotSeriesDataPicker (works with date axis).
20 * 6. Raster & color-map extensions:
21 * - QwtGridRasterData (2-D table + interpolation)
22 * - QwtLinearColorMap::stopColors(), stopPos() API rename.
23 * 7. Bar-chart: expose pen/brush control.
24 * 8. Amalgamated build: single QwtPlot.h / QwtPlot.cpp pair in src-amalgamate.
25 *****************************************************************************/
26
27#ifndef QWT_SCALE_DRAW_H
28#define QWT_SCALE_DRAW_H
29
30#include "qwt_global.h"
31#include "qwt_abstract_scale_draw.h"
32
33#include <qpoint.h>
34
35class QTransform;
36class QSizeF;
37class QRectF;
38class QRect;
39
52class QWT_EXPORT QwtScaleDraw : public QwtAbstractScaleDraw
53{
54 public:
60 {
63
66
69
71 RightScale
72 };
73
75 virtual ~QwtScaleDraw();
76
77 void getBorderDistHint( const QFont&, int& start, int& end ) const;
78 int minLabelDist( const QFont& ) const;
79
80 int minLength( const QFont& ) const;
81 virtual double extent( const QFont& ) const QWT_OVERRIDE;
82
83 void move( double x, double y );
84 void move( const QPointF& );
85 void setLength( double length );
86
87 Alignment alignment() const;
88 void setAlignment( Alignment );
89
90 Qt::Orientation orientation() const;
91
92 QPointF pos() const;
93 double length() const;
94
95 void setLabelAlignment( Qt::Alignment );
96 Qt::Alignment labelAlignment() const;
97
98 void setLabelRotation( double rotation );
99 double labelRotation() const;
100
101 int maxLabelHeight( const QFont& ) const;
102 int maxLabelWidth( const QFont& ) const;
103
104 QPointF labelPosition( double value ) const;
105
106 QRectF labelRect( const QFont&, double value ) const;
107 QSizeF labelSize( const QFont&, double value ) const;
108
109 QRect boundingLabelRect( const QFont&, double value ) const;
110
111 protected:
112 QTransform labelTransformation( const QPointF&, const QSizeF& ) const;
113
114 virtual void drawTick( QPainter*,
115 double value, double len ) const QWT_OVERRIDE;
116
117 virtual void drawBackbone( QPainter* ) const QWT_OVERRIDE;
118 virtual void drawLabel( QPainter*, double value ) const QWT_OVERRIDE;
119
120 private:
121 void updateMap();
122
123 class PrivateData;
124 PrivateData* m_data;
125};
126
135inline void QwtScaleDraw::move( double x, double y )
136{
137 move( QPointF( x, y ) );
138}
139
140#endif
A abstract base class for drawing scales.
Definition qwt_abstract_scale_draw.h:49
virtual void drawBackbone(QPainter *painter) const =0
Draws the baseline of the scale.
virtual void drawTick(QPainter *painter, double value, double len) const =0
Draw a tick.
virtual double extent(const QFont &font) const =0
Calculate the extent.
virtual void drawLabel(QPainter *painter, double value) const =0
Draws the label for a major scale tick.
A class for drawing scales.
Definition qwt_scale_draw.h:53
void move(double x, double y)
Move the position of the scale.
Definition qwt_scale_draw.h:135
Alignment
Alignment of the scale draw.
Definition qwt_scale_draw.h:60
@ BottomScale
The scale is below.
Definition qwt_scale_draw.h:62
@ TopScale
The scale is above.
Definition qwt_scale_draw.h:65
@ LeftScale
The scale is left.
Definition qwt_scale_draw.h:68