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 );
00085 virtual KDChart::CartesianAxisList axes () const;
00086
00091 virtual void layoutPlanes();
00093 virtual void setCoordinatePlane( AbstractCoordinatePlane* plane );
00094
00102 virtual void setReferenceDiagram( AbstractCartesianDiagram* diagram, const QPointF& offset = QPointF() );
00107 virtual AbstractCartesianDiagram* referenceDiagram() const;
00112 virtual QPointF referenceDiagramOffset() const;
00113
00114
00115 void setModel( QAbstractItemModel* model );
00116
00117 void setRootIndex( const QModelIndex& index );
00118
00119 void setAttributesModel( AttributesModel* model );
00120
00121 protected:
00123 virtual double threeDItemDepth( const QModelIndex& index ) const = 0;
00125 virtual double threeDItemDepth( int column ) const = 0;
00126 };
00127
00128 }
00129
00130 #endif