00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef KDCHARTPOLARDIAGRAM_H
00031 #define KDCHARTPOLARDIAGRAM_H
00032
00033
00034 #include "KDChartPosition.h"
00035 #include "KDChartAbstractPolarDiagram.h"
00036
00037
00038 class QPolygonF;
00039
00040
00041 namespace KDChart {
00042
00046 class KDCHART_EXPORT PolarDiagram : public AbstractPolarDiagram
00047 {
00048 Q_OBJECT
00049
00050 Q_DISABLE_COPY( PolarDiagram )
00051 KDCHART_DECLARE_DERIVED_DIAGRAM( PolarDiagram, PolarCoordinatePlane )
00052
00053 public:
00054 explicit PolarDiagram(
00055 QWidget* parent = 0, PolarCoordinatePlane* plane = 0 );
00056 virtual ~PolarDiagram();
00057
00058 protected:
00059
00061 virtual void paint ( PaintContext* paintContext );
00062
00063 public:
00065 virtual void resize ( const QSizeF& area );
00066
00067
00069 virtual double valueTotals () const;
00071 virtual double numberOfValuesPerDataset() const;
00073 virtual double numberOfGridRings() const;
00074
00075 virtual PolarDiagram * clone() const;
00076
00078 void setZeroDegreePosition( int degrees );
00080 int zeroDegreePosition() const;
00081
00082 void setRotateCircularLabels( bool rotateCircularLabels );
00083 bool rotateCircularLabels() const;
00084
00088 void setCloseDatasets( bool closeDatasets );
00089 bool closeDatasets() const;
00090
00091 void setShowDelimitersAtPosition( Position position,
00092 bool showDelimiters );
00093 void setShowLabelsAtPosition( Position position,
00094 bool showLabels );
00095
00096 bool showDelimitersAtPosition( Position position ) const;
00097
00098 bool showLabelsAtPosition( Position position ) const;
00099
00100 virtual void paint ( PaintContext* paintContext,
00101 bool calculateListAndReturnScale,
00102 qreal& newZoomX, qreal& newZoomY );
00103
00104 protected:
00106 virtual const QPair<QPointF, QPointF> calculateDataBoundaries() const;
00107 void paintEvent ( QPaintEvent* );
00108 void resizeEvent ( QResizeEvent* );
00109 virtual void paintPolarMarkers( PaintContext* ctx, const QPolygonF& polygon );
00110
00111 };
00112
00113 }
00114
00115
00116 #endif // KDCHARTPOLARDIAGRAM_H