~ubuntu-branches/ubuntu/precise/koffice/precise

« back to all changes in this revision

Viewing changes to plugins/chartshape/kdchart/src/KDChartRingDiagram.h

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi
  • Date: 2010-10-27 17:52:57 UTC
  • mfrom: (0.12.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20101027175257-s04zqqk5bs8ckm9o
Tags: 1:2.2.83-0ubuntu1
* Merge with Debian git remaining changes:
 - Add build-deps on librcps-dev, opengtl-dev, libqtgtl-dev, freetds-dev,
   create-resources, libspnav-dev
 - Remove needless build-dep on libwv2-dev
 - koffice-libs recommends create-resources
 - krita recommends pstoedit
 - Keep our patches
* New upstream release 2.3 beta 3
  - Remove debian/patches fixed by upstream
  - Update install files

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
** Copyright (C) 2001-2010 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 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
 
 
26
#include "KDChartAbstractPieDiagram.h"
 
27
 
 
28
namespace KDChart {
 
29
 
 
30
/**
 
31
  * @brief RingDiagram defines a common ring diagram
 
32
  */
 
33
class KDCHART_EXPORT RingDiagram : public AbstractPieDiagram
 
34
{
 
35
    Q_OBJECT
 
36
 
 
37
    Q_DISABLE_COPY( RingDiagram )
 
38
    KDCHART_DECLARE_DERIVED_DIAGRAM( RingDiagram, PolarCoordinatePlane )
 
39
 
 
40
public:
 
41
    explicit RingDiagram(
 
42
        QWidget* parent = 0, PolarCoordinatePlane* plane = 0 );
 
43
    virtual ~RingDiagram();
 
44
 
 
45
protected:
 
46
    // Implement AbstractDiagram
 
47
    /** \reimpl */
 
48
    virtual void paint ( PaintContext* paintContext );
 
49
public:
 
50
    /** \reimpl */
 
51
    virtual void resize ( const QSizeF& area );
 
52
 
 
53
    // Implement AbstractPolarDiagram
 
54
    /** \reimpl */
 
55
    virtual double valueTotals () const;
 
56
    /** \reimpl */
 
57
    virtual double numberOfValuesPerDataset() const;
 
58
    virtual double numberOfDatasets() const;
 
59
    /** \reimpl */
 
60
    virtual double numberOfGridRings() const;
 
61
 
 
62
    double valueTotals( int dataset ) const;
 
63
 
 
64
    virtual RingDiagram * clone() const;
 
65
 
 
66
    /**
 
67
     * Returns true if both diagrams have the same settings.
 
68
     */
 
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:
 
78
    /** \reimpl */
 
79
    virtual const QPair<QPointF, QPointF> calculateDataBoundaries() const;
 
80
    void paintEvent( QPaintEvent* );
 
81
    void resizeEvent( QResizeEvent* );
 
82
 
 
83
private:
 
84
    //QRectF piePosition( uint dataset, uint pie ) const;
 
85
    void drawOnePie( QPainter* painter,
 
86
        uint dataset, uint pie,
 
87
        qreal granularity );
 
88
    void drawPieSurface( QPainter* painter,
 
89
        uint dataset, uint pie,
 
90
        qreal granularity );
 
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
 
94
 
 
95
}
 
96
 
 
97
#endif // KDCHARTRINGDIAGRAM_H