KD Chart 2  [rev.2.5.1]
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Pages
KDChartRingDiagram.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2001-2013 Klaralvdalens Datakonsult AB. All rights reserved.
3 **
4 ** This file is part of the KD Chart library.
5 **
6 ** Licensees holding valid commercial KD Chart licenses may use this file in
7 ** accordance with the KD Chart Commercial License Agreement provided with
8 ** the Software.
9 **
10 **
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.txt included.
14 **
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.
17 **
18 ** Contact info@kdab.com if any conditions of this licensing are not
19 ** clear to you.
20 **
21 **********************************************************************/
22 
23 #ifndef KDCHARTRINGDIAGRAM_H
24 #define KDCHARTRINGDIAGRAM_H
25 
27 
28 namespace KDChart {
29 
33 class KDCHART_EXPORT RingDiagram : public AbstractPieDiagram
34 {
35  Q_OBJECT
36 
37  Q_DISABLE_COPY( RingDiagram )
39 
40 public:
41  explicit RingDiagram(
42  QWidget* parent = 0, PolarCoordinatePlane* plane = 0 );
43  virtual ~RingDiagram();
44 
45 protected:
46  // Implement AbstractDiagram
48  virtual void paint( PaintContext* paintContext );
49 public:
51  virtual void resize( const QSizeF& area );
52 
53  // Implement AbstractPolarDiagram
55  virtual qreal valueTotals() const;
57  virtual qreal numberOfValuesPerDataset() const;
58  virtual qreal numberOfDatasets() const;
60  virtual qreal numberOfGridRings() const;
61 
62  qreal valueTotals( int dataset ) const;
63 
64  virtual RingDiagram * clone() const;
65 
69  bool compare( const RingDiagram* other ) const;
70 
71  void setRelativeThickness( bool relativeThickness );
72  bool relativeThickness() const;
73 
74  virtual void setExpandWhenExploded( bool expand );
75  virtual bool expandWhenExploded() const;
76 
77 protected:
79  virtual const QPair<QPointF, QPointF> calculateDataBoundaries() const;
80  void paintEvent( QPaintEvent* );
81  void resizeEvent( QResizeEvent* );
82 
83 private:
84  void drawOneSlice( QPainter* painter, uint dataset, uint slice, qreal granularity );
85  void drawPieSurface( QPainter* painter, uint dataset, uint slice, qreal granularity );
86  QPointF pointOnEllipse( const QRectF& rect, int dataset, int slice, bool outer, qreal angle,
87  qreal totalGapFactor, qreal totalExplodeFactor );
88 }; // End of class RingDiagram
89 
90 }
91 
92 #endif // KDCHARTRINGDIAGRAM_H

Klarälvdalens Datakonsult AB (KDAB)
Qt-related services and products
http://www.kdab.com/
http://www.kdab.com/products/kd-chart/