1 /*************************************************************************** 2 qgshistogramdiagram.h 3 --------------------- 4 begin : August 2012 5 copyright : (C) 2012 by Matthias Kuhn 6 email : matthias at opengis 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 16 #ifndef QGSHISTOGRAMDIAGRAM_H 17 #define QGSHISTOGRAMDIAGRAM_H 18 19 #define DIAGRAM_NAME_HISTOGRAM "Histogram" 20 21 #include "qgis_core.h" 22 #include "qgis.h" 23 #include "qgsdiagram.h" 24 #include <QPen> 25 #include <QBrush> 26 27 class QgsFeature; 28 class QPainter; 29 class QPointF; 30 class QgsDiagramSettings; 31 class QgsDiagramInterpolationSettings; 32 33 class QgsRenderContext; 34 35 /** 36 * \ingroup core 37 * \class QgsHistogramDiagram 38 * \brief A histogram style diagram. 39 */ 40 class CORE_EXPORT QgsHistogramDiagram: public QgsDiagram SIP_NODEFAULTCTORS 41 { 42 public: 43 QgsHistogramDiagram(); 44 45 QgsHistogramDiagram *clone() const override SIP_FACTORY; 46 47 void renderDiagram( const QgsFeature &feature, QgsRenderContext &c, const QgsDiagramSettings &s, QPointF position ) override; 48 49 QSizeF diagramSize( const QgsAttributes &attributes, const QgsRenderContext &c, const QgsDiagramSettings &s ) override; 50 QSizeF diagramSize( const QgsFeature &feature, const QgsRenderContext &c, const QgsDiagramSettings &s, const QgsDiagramInterpolationSettings &is ) override; 51 double legendSize( double value, const QgsDiagramSettings &s, const QgsDiagramInterpolationSettings &is ) const override; 52 QString diagramName() const override; 53 54 private: 55 QBrush mCategoryBrush; 56 QPen mPen; 57 double mScaleFactor; 58 }; 59 60 61 #endif // QGSHISTOGRAMDIAGRAM_H 62