1 /***************************************************************************
2     qgspiediagram.h
3     ---------------------
4     begin                : March 2011
5     copyright            : (C) 2011 by Marco Hugentobler
6     email                : marco dot hugentobler at sourcepole dot ch
7  ***************************************************************************
8  *                                                                         *
9  *   This program is free software; you can redistribute it and/or modify  *
10  *   it under the terms of the GNU General Public License as published by  *
11  *   the Free Software Foundation; either version 2 of the License, or     *
12  *   (at your option) any later version.                                   *
13  *                                                                         *
14  ***************************************************************************/
15 #ifndef QGSPIEDIAGRAM_H
16 #define QGSPIEDIAGRAM_H
17 
18 #define DIAGRAM_NAME_PIE "Pie"
19 
20 #include "qgis_core.h"
21 #include "qgis.h"
22 #include "qgsdiagram.h"
23 #include <QPen>
24 #include <QBrush>
25 
26 class QPainter;
27 class QPointF;
28 class QgsDiagramSettings;
29 class QgsDiagramInterpolationSettings;
30 class QgsFeature;
31 class QgsRenderContext;
32 
33 /**
34  * \ingroup core
35  * \class QgsPieDiagram
36  * \brief A pie chart diagram.
37  */
38 class CORE_EXPORT QgsPieDiagram: public QgsDiagram SIP_NODEFAULTCTORS
39 {
40   public:
41     QgsPieDiagram();
42 
43     QgsPieDiagram *clone() const override SIP_FACTORY;
44 
45     void renderDiagram( const QgsFeature &feature, QgsRenderContext &c, const QgsDiagramSettings &s, QPointF position ) override;
46 
47     QSizeF diagramSize( const QgsAttributes &attributes, const QgsRenderContext &c, const QgsDiagramSettings &s ) override;
48     QSizeF diagramSize( const QgsFeature &feature, const QgsRenderContext &c, const QgsDiagramSettings &s, const QgsDiagramInterpolationSettings &is ) override;
49     double legendSize( double value, const QgsDiagramSettings &s, const QgsDiagramInterpolationSettings &is ) const override;
50     QString diagramName() const override;
51 
52   private:
53     QBrush mCategoryBrush;
54     QPen mPen;
55 
56 };
57 
58 #endif // QGSPIEDIAGRAM_H
59