/**************************************************************************** ** Copyright (C) 2001-2011 Klaralvdalens Datakonsult AB. All rights reserved. ** ** This file is part of the KD Chart library. ** ** Licensees holding valid commercial KD Chart licenses may use this file in ** accordance with the KD Chart Commercial License Agreement provided with ** the Software. ** ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 and version 3 as published by the ** Free Software Foundation and appearing in the file LICENSE.GPL.txt included. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** Contact info@kdab.com if any conditions of this licensing are not ** clear to you. ** **********************************************************************/ #ifndef KDCHARTPOLARDIAGRAM_H #define KDCHARTPOLARDIAGRAM_H #include "KDChartPosition.h" #include "KDChartAbstractPolarDiagram.h" class QPolygonF; namespace KDChart { /** * @brief PolarDiagram defines a common polar diagram */ class KDCHART_EXPORT PolarDiagram : public AbstractPolarDiagram { Q_OBJECT Q_DISABLE_COPY( PolarDiagram ) KDCHART_DECLARE_DERIVED_DIAGRAM( PolarDiagram, PolarCoordinatePlane ) public: explicit PolarDiagram( QWidget* parent = 0, PolarCoordinatePlane* plane = 0 ); virtual ~PolarDiagram(); protected: // Implement AbstractDiagram /** \reimpl */ virtual void paint ( PaintContext* paintContext ); public: /** \reimpl */ virtual void resize ( const QSizeF& area ); // Implement AbstractPolarDiagram /** \reimpl */ virtual double valueTotals () const; /** \reimpl */ virtual double numberOfValuesPerDataset() const; /** \reimpl */ virtual double numberOfGridRings() const; virtual PolarDiagram * clone() const; /** \deprecated Use PolarCoordinatePlane::setStartPosition( qreal degrees ) instead. */ void setZeroDegreePosition( int degrees ); /** \deprecated Use qreal PolarCoordinatePlane::startPosition instead. */ int zeroDegreePosition() const; void setRotateCircularLabels( bool rotateCircularLabels ); bool rotateCircularLabels() const; /** Close each of the data series by connecting the last point to its * respective start point */ void setCloseDatasets( bool closeDatasets ); bool closeDatasets() const; void setShowDelimitersAtPosition( Position position, bool showDelimiters ); void setShowLabelsAtPosition( Position position, bool showLabels ); bool showDelimitersAtPosition( Position position ) const; bool showLabelsAtPosition( Position position ) const; virtual void paint ( PaintContext* paintContext, bool calculateListAndReturnScale, qreal& newZoomX, qreal& newZoomY ); protected: /** \reimpl */ virtual const QPair calculateDataBoundaries() const; void paintEvent ( QPaintEvent* ); void resizeEvent ( QResizeEvent* ); virtual void paintPolarMarkers( PaintContext* ctx, const QPolygonF& polygon ); }; // End of class PolarDiagram } #endif // KDCHARTPOLARDIAGRAM_H