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 #ifndef KDCHARTABSTRACTCARTESIANDIAGRAM_H
00027 #define KDCHARTABSTRACTCARTESIANDIAGRAM_H
00028
00029 #include "KDChartCartesianCoordinatePlane.h"
00030 #include "KDChartAbstractDiagram.h"
00031 #include "KDChartCartesianAxis.h"
00032
00033 namespace KDChart {
00034
00035 class GridAttributes;
00036
00037
00045 class KDCHART_EXPORT AbstractCartesianDiagram : public AbstractDiagram
00046 {
00047 Q_OBJECT
00048 Q_DISABLE_COPY( AbstractCartesianDiagram )
00049
00050 KDCHART_DECLARE_DERIVED_DIAGRAM( AbstractCartesianDiagram, CartesianCoordinatePlane )
00051
00052 public:
00053 explicit AbstractCartesianDiagram ( QWidget* parent = 0, CartesianCoordinatePlane* plane = 0 );
00054 virtual ~AbstractCartesianDiagram();
00055
00059 bool compare( const AbstractCartesianDiagram* other )const;
00060
00061 virtual const int numberOfAbscissaSegments () const = 0;
00062 virtual const int numberOfOrdinateSegments () const = 0;
00072 virtual void addAxis( CartesianAxis * axis );
00081 virtual void takeAxis( CartesianAxis * axis );
00082 virtual KDChart::CartesianAxisList axes () const;
00083
00084 virtual void layoutPlanes();
00085 virtual void setCoordinatePlane( AbstractCoordinatePlane* plane );
00086
00087 virtual void setReferenceDiagram( AbstractCartesianDiagram* diagram, const QPointF& offset = QPointF() );
00088 virtual AbstractCartesianDiagram* referenceDiagram() const;
00089 virtual QPointF referenceDiagramOffset() const;
00090
00091 protected:
00092 virtual double threeDItemDepth( const QModelIndex & index ) const = 0;
00093 virtual double threeDItemDepth( int column ) const = 0;
00094 };
00095
00096 }
00097
00098 #endif