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 #ifndef KDGANTTABSTRACTGRID_H
00026 #define KDGANTTABSTRACTGRID_H
00027
00028 #include "kdganttglobal.h"
00029 #include "kdganttconstraint.h"
00030
00031 class QPainter;
00032 class QRectF;
00033 class QAbstractItemModel;
00034 class QModelIndex;
00035
00036 namespace KDGantt {
00037 class AbstractRowController;
00038 class Span;
00039
00040 class KDCHART_EXPORT AbstractGrid : public QObject {
00041 Q_OBJECT
00042 KDGANTT_DECLARE_PRIVATE_BASE_POLYMORPHIC( AbstractGrid )
00043 friend class GraphicsScene;
00044 public:
00045
00046 AbstractGrid(QObject* parent = 0);
00047 virtual ~AbstractGrid();
00048
00049 QAbstractItemModel* model() const;
00050 QModelIndex rootIndex() const;
00051
00052 virtual Span mapToChart( const QModelIndex& idx ) const = 0;
00053 virtual bool mapFromChart( const Span& span, const QModelIndex& idx,
00054 const QList<Constraint>& constraints=QList<Constraint>() ) const = 0;
00055 bool isSatisfiedConstraint( const Constraint& c ) const;
00056
00057 virtual void paintGrid( QPainter* painter, const QRectF& sceneRect, const QRectF& exposedRect,
00058 AbstractRowController* rowController = 0, QWidget* widget=0 ) = 0;
00059 virtual void paintHeader( QPainter* painter, const QRectF& headerRect, const QRectF& exposedRect,
00060 qreal offset, QWidget* widget=0 ) = 0;
00061 public Q_SLOTS:
00062 virtual void setModel( QAbstractItemModel* model );
00063 virtual void setRootIndex( const QModelIndex& idx );
00064 Q_SIGNALS:
00065 void gridChanged();
00066 };
00067 }
00068
00069 #endif
00070