1
/****************************************************************************
2
** Copyright (C) 2001-2010 Klaralvdalens Datakonsult AB. All rights reserved.
4
** This file is part of the KD Chart library.
6
** Licensees holding valid commercial KD Chart licenses may use this file in
7
** accordance with the KD Chart Commercial License Agreement provided with
11
** This file may be distributed and/or modified under the terms of the
12
** GNU General Public License version 2 and version 3 as published by the
13
** Free Software Foundation and appearing in the file LICENSE.GPL included.
15
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18
** Contact info@kdab.com if any conditions of this licensing are not
21
**********************************************************************/
23
#ifndef KDCHARTRINGDIAGRAM_H
24
#define KDCHARTRINGDIAGRAM_H
26
#include "KDChartAbstractPieDiagram.h"
31
* @brief RingDiagram defines a common ring diagram
33
class KDCHART_EXPORT RingDiagram : public AbstractPieDiagram
37
Q_DISABLE_COPY( RingDiagram )
38
KDCHART_DECLARE_DERIVED_DIAGRAM( RingDiagram, PolarCoordinatePlane )
42
QWidget* parent = 0, PolarCoordinatePlane* plane = 0 );
43
virtual ~RingDiagram();
46
// Implement AbstractDiagram
48
virtual void paint ( PaintContext* paintContext );
51
virtual void resize ( const QSizeF& area );
53
// Implement AbstractPolarDiagram
55
virtual double valueTotals () const;
57
virtual double numberOfValuesPerDataset() const;
58
virtual double numberOfDatasets() const;
60
virtual double numberOfGridRings() const;
62
double valueTotals( int dataset ) const;
64
virtual RingDiagram * clone() const;
67
* Returns true if both diagrams have the same settings.
69
bool compare( const RingDiagram* other ) const;
71
void setRelativeThickness( bool relativeThickness );
72
bool relativeThickness() const;
74
virtual void setExpandWhenExploded( bool expand );
75
virtual bool expandWhenExploded() const;
79
virtual const QPair<QPointF, QPointF> calculateDataBoundaries() const;
80
void paintEvent( QPaintEvent* );
81
void resizeEvent( QResizeEvent* );
84
//QRectF piePosition( uint dataset, uint pie ) const;
85
void drawOnePie( QPainter* painter,
86
uint dataset, uint pie,
88
void drawPieSurface( QPainter* painter,
89
uint dataset, uint pie,
91
QPointF pointOnCircle( const QRectF& rect, int dataset, int pie, bool outer, qreal angle, qreal totalGapFactor, qreal totalExplodeFactor );
92
//qreal radiusOf( const QRectF& rect, int dataset, int pie, bool outer );
93
}; // End of class RingDiagram
97
#endif // KDCHARTRINGDIAGRAM_H