KD Chart 2 [rev.2.4]
|
00001 /**************************************************************************** 00002 ** Copyright (C) 2001-2012 Klaralvdalens Datakonsult AB. All rights reserved. 00003 ** 00004 ** This file is part of the KD Chart library. 00005 ** 00006 ** Licensees holding valid commercial KD Chart licenses may use this file in 00007 ** accordance with the KD Chart Commercial License Agreement provided with 00008 ** the Software. 00009 ** 00010 ** 00011 ** This file may be distributed and/or modified under the terms of the 00012 ** GNU General Public License version 2 and version 3 as published by the 00013 ** Free Software Foundation and appearing in the file LICENSE.GPL.txt included. 00014 ** 00015 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00016 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00017 ** 00018 ** Contact info@kdab.com if any conditions of this licensing are not 00019 ** clear to you. 00020 ** 00021 **********************************************************************/ 00022 00023 #ifndef KDCHARTPOLARDIAGRAM_H 00024 #define KDCHARTPOLARDIAGRAM_H 00025 00026 00027 #include "KDChartPosition.h" 00028 #include "KDChartAbstractPolarDiagram.h" 00029 00030 00031 class QPolygonF; 00032 00033 00034 namespace KDChart { 00035 00039 class KDCHART_EXPORT PolarDiagram : public AbstractPolarDiagram 00040 { 00041 Q_OBJECT 00042 00043 Q_DISABLE_COPY( PolarDiagram ) 00044 KDCHART_DECLARE_DERIVED_DIAGRAM( PolarDiagram, PolarCoordinatePlane ) 00045 00046 public: 00047 explicit PolarDiagram( 00048 QWidget* parent = 0, PolarCoordinatePlane* plane = 0 ); 00049 virtual ~PolarDiagram(); 00050 00051 protected: 00052 // Implement AbstractDiagram 00054 virtual void paint ( PaintContext* paintContext ); 00055 00056 public: 00058 virtual void resize ( const QSizeF& area ); 00059 00060 // Implement AbstractPolarDiagram 00062 virtual double valueTotals () const; 00064 virtual double numberOfValuesPerDataset() const; 00066 virtual double numberOfGridRings() const; 00067 00068 virtual PolarDiagram * clone() const; 00069 00071 void setZeroDegreePosition( int degrees ); 00073 int zeroDegreePosition() const; 00074 00075 void setRotateCircularLabels( bool rotateCircularLabels ); 00076 bool rotateCircularLabels() const; 00077 00081 void setCloseDatasets( bool closeDatasets ); 00082 bool closeDatasets() const; 00083 00084 void setShowDelimitersAtPosition( Position position, 00085 bool showDelimiters ); 00086 void setShowLabelsAtPosition( Position position, 00087 bool showLabels ); 00088 00089 bool showDelimitersAtPosition( Position position ) const; 00090 00091 bool showLabelsAtPosition( Position position ) const; 00092 00093 virtual void paint ( PaintContext* paintContext, 00094 bool calculateListAndReturnScale, 00095 qreal& newZoomX, qreal& newZoomY ); 00096 00097 protected: 00099 virtual const QPair<QPointF, QPointF> calculateDataBoundaries() const; 00100 void paintEvent ( QPaintEvent* ); 00101 void resizeEvent ( QResizeEvent* ); 00102 virtual void paintPolarMarkers( PaintContext* ctx, const QPolygonF& polygon ); 00103 00104 }; // End of class PolarDiagram 00105 00106 } 00107 00108 00109 #endif // KDCHARTPOLARDIAGRAM_H