QWT 7.0.1
Loading...
Searching...
No Matches
qwt_compass_rose.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_COMPASS_ROSE_H
28#define QWT_COMPASS_ROSE_H
29
30#include "qwt_global.h"
31#include <qpalette.h>
32
33class QPainter;
34
38class QWT_EXPORT QwtCompassRose
39{
40 public:
42 virtual ~QwtCompassRose();
43
44 virtual void setPalette( const QPalette& );
45 const QPalette& palette() const;
46
56 virtual void draw( QPainter* painter,
57 const QPointF& center, double radius, double north,
58 QPalette::ColorGroup colorGroup = QPalette::Active ) const = 0;
59
60 private:
61 Q_DISABLE_COPY(QwtCompassRose)
62
63 QPalette m_palette;
64};
65
69class QWT_EXPORT QwtSimpleCompassRose : public QwtCompassRose
70{
71 public:
72 QwtSimpleCompassRose( int numThorns = 8, int numThornLevels = -1 );
73 virtual ~QwtSimpleCompassRose();
74
75 void setWidth( double );
76 double width() const;
77
78 void setNumThorns( int );
79 int numThorns() const;
80
81 void setNumThornLevels( int );
82 int numThornLevels() const;
83
84 void setShrinkFactor( double factor );
85 double shrinkFactor() const;
86
87 virtual void draw( QPainter*,
88 const QPointF& center, double radius, double north,
89 QPalette::ColorGroup = QPalette::Active ) const QWT_OVERRIDE;
90
91 static void drawRose( QPainter*, const QPalette&,
92 const QPointF& center, double radius, double north, double width,
93 int numThorns, int numThornLevels, double shrinkFactor );
94
95 private:
96 class PrivateData;
97 PrivateData* m_data;
98};
99
100#endif
Abstract base class for a compass rose.
Definition qwt_compass_rose.h:39
virtual void draw(QPainter *painter, const QPointF &center, double radius, double north, QPalette::ColorGroup colorGroup=QPalette::Active) const =0
Draw the rose.
A simple rose for QwtCompass.
Definition qwt_compass_rose.h:70