~ubuntu-branches/ubuntu/oneiric/koffice/oneiric-updates

« back to all changes in this revision

Viewing changes to plugins/chartshape/kdchart/src/KDChartPieDiagram.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 KDCHARTPIEDIAGRAM_H
 
24
#define KDCHARTPIEDIAGRAM_H
 
25
 
 
26
#include "KDChartAbstractPieDiagram.h"
 
27
 
 
28
namespace KDChart {
 
29
 
 
30
    class DataValueTextInfo;
 
31
    typedef class QVector<DataValueTextInfo> DataValueTextInfoList;
 
32
 
 
33
/**
 
34
  * @brief PieDiagram defines a common pie diagram
 
35
  */
 
36
class KDCHART_EXPORT PieDiagram : public AbstractPieDiagram
 
37
{
 
38
    Q_OBJECT
 
39
 
 
40
    Q_DISABLE_COPY( PieDiagram )
 
41
    KDCHART_DECLARE_DERIVED_DIAGRAM( PieDiagram, PolarCoordinatePlane )
 
42
 
 
43
public:
 
44
    explicit PieDiagram(
 
45
        QWidget* parent = 0, PolarCoordinatePlane* plane = 0 );
 
46
    virtual ~PieDiagram();
 
47
 
 
48
protected:
 
49
    // Implement AbstractDiagram
 
50
    /** \reimpl */
 
51
    virtual void paint ( PaintContext* paintContext );
 
52
    void paintInternal(PaintContext* paintContext, QRectF& textBoundingRect);
 
53
 
 
54
public:
 
55
    /** \reimpl */
 
56
    virtual void resize ( const QSizeF& area );
 
57
 
 
58
    // Implement AbstractPolarDiagram
 
59
    /** \reimpl */
 
60
    virtual double valueTotals () const;
 
61
    /** \reimpl */
 
62
    virtual double numberOfValuesPerDataset() const;
 
63
    /** \reimpl */
 
64
    virtual double numberOfGridRings() const;
 
65
 
 
66
    virtual PieDiagram * clone() const;
 
67
 
 
68
protected:
 
69
    /** \reimpl */
 
70
    virtual const QPair<QPointF, QPointF> calculateDataBoundaries() const;
 
71
    void paintEvent( QPaintEvent* );
 
72
    void resizeEvent( QResizeEvent* );
 
73
 
 
74
private:
 
75
    QRectF piePosition( uint dataset, uint pie ) const;
 
76
    void drawOnePie( QPainter* painter,
 
77
        DataValueTextInfoList* list,
 
78
        uint dataset, uint pie,
 
79
        qreal granularity,
 
80
        qreal threeDPieHeight );
 
81
    void drawPieSurface( QPainter* painter,
 
82
        DataValueTextInfoList* list,
 
83
        uint dataset, uint pie,
 
84
        qreal granularity );
 
85
    void draw3DEffect( QPainter* painter,
 
86
        const QRectF& drawPosition,
 
87
        uint dataset, uint pie,
 
88
        qreal granularity,
 
89
        const ThreeDPieAttributes& threeDAttrs,
 
90
        bool /*explode*/ );
 
91
    void drawStraightEffectSegment( QPainter* painter,
 
92
        const QRectF& rect,
 
93
        qreal threeDHeight,
 
94
        qreal angle );
 
95
    void drawUpperBrinkEffect( QPainter* painter,
 
96
        const QRectF& rect,
 
97
        qreal angle );
 
98
    void drawArcEffectSegment( QPainter* painter,
 
99
        const QRectF& rect,
 
100
        qreal threeDHeight,
 
101
        qreal startAngle,
 
102
        qreal endAngle,
 
103
        qreal granularity );
 
104
    void drawArcUpperBrinkEffectSegment( QPainter* painter,
 
105
        const QRectF& rect,
 
106
        qreal startAngle,
 
107
        qreal endAngle,
 
108
        qreal granularity );
 
109
    uint findPieAt( qreal angle, int columnCount );
 
110
    uint findLeftPie( uint pie, int columnCount );
 
111
    uint findRightPie( uint pie, int columnCount );
 
112
    QPointF pointOnCircle( const QRectF& rect, qreal angle );
 
113
}; // End of class KDChartPieDiagram
 
114
 
 
115
}
 
116
#endif // KDCHARTPIEDIAGRAM_H