KDChartAbstractCartesianDiagram.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 ** Copyright (C) 2001-2010 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 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 KDCHARTABSTRACTCARTESIANDIAGRAM_H
00024 #define KDCHARTABSTRACTCARTESIANDIAGRAM_H
00025 
00026 #include "KDChartCartesianCoordinatePlane.h"
00027 #include "KDChartAbstractDiagram.h"
00028 #include "KDChartCartesianAxis.h"
00029 
00030 namespace KDChart {
00031 
00032     class GridAttributes;
00033 //    class PaintContext;
00034 
00042     class KDCHART_EXPORT AbstractCartesianDiagram : public AbstractDiagram
00043     {
00044         Q_OBJECT
00045         Q_DISABLE_COPY( AbstractCartesianDiagram )
00046 //        KDCHART_DECLARE_PRIVATE_DERIVED( AbstractCartesianDiagram )
00047         KDCHART_DECLARE_DERIVED_DIAGRAM( AbstractCartesianDiagram, CartesianCoordinatePlane )
00048 
00049     public:
00050         explicit AbstractCartesianDiagram ( QWidget* parent = 0, CartesianCoordinatePlane* plane = 0 );
00051         virtual ~AbstractCartesianDiagram();
00052 
00056         bool compare( const AbstractCartesianDiagram* other )const;
00057 
00058 #if QT_VERSION < 0x040400 || defined(Q_COMPILER_MANGLES_RETURN_TYPE)
00059         virtual const int numberOfAbscissaSegments () const = 0;
00060         virtual const int numberOfOrdinateSegments () const = 0;
00061 #else
00062         virtual int numberOfAbscissaSegments () const = 0;
00063         virtual int numberOfOrdinateSegments () const = 0;
00064 #endif
00065 
00074         virtual void addAxis( CartesianAxis * axis );
00083         virtual void takeAxis( CartesianAxis * axis );
00087         virtual KDChart::CartesianAxisList axes () const;
00088 
00093         virtual void layoutPlanes();
00095         virtual void setCoordinatePlane( AbstractCoordinatePlane* plane );
00096 
00104         virtual void setReferenceDiagram( AbstractCartesianDiagram* diagram, const QPointF& offset = QPointF() );
00109         virtual AbstractCartesianDiagram* referenceDiagram() const;
00114         virtual QPointF referenceDiagramOffset() const;
00115 
00116         /* reimpl */
00117         void setModel( QAbstractItemModel* model );
00118         /* reimpl */
00119         void setRootIndex( const QModelIndex& index );
00120         /* reimpl */
00121         void setAttributesModel( AttributesModel* model );
00122 
00123     protected:
00125         virtual double threeDItemDepth( const QModelIndex& index ) const = 0;
00127         virtual double threeDItemDepth( int column ) const = 0;
00128     };
00129 
00130 }
00131 
00132 #endif