1
/****************************************************************************
2
** Copyright (C) 2001-2006 Klarälvdalens Datakonsult AB. All rights reserved.
4
** This file is part of the KD Gantt library.
6
** This file may be used under the terms of the GNU General Public
7
** License versions 2.0 or 3.0 as published by the Free Software
8
** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
9
** included in the packaging of this file. Alternatively you may (at
10
** your option) use any later version of the GNU General Public
11
** License if such license has been publicly approved by
12
** Klarälvdalens Datakonsult AB (or its successors, if any).
14
** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
15
** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
16
** A PARTICULAR PURPOSE. Klarälvdalens Datakonsult AB reserves all rights
17
** not expressly granted herein.
19
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
22
**********************************************************************/
23
#ifndef KDGANTTABSTRACTGRID_H
24
#define KDGANTTABSTRACTGRID_H
26
#include "kdganttglobal.h"
27
#include "kdganttconstraint.h"
31
class QAbstractItemModel;
35
class AbstractRowController;
38
class KDGANTT_EXPORT AbstractGrid : public QObject {
40
KDGANTT_DECLARE_PRIVATE_BASE_POLYMORPHIC( AbstractGrid )
41
friend class GraphicsScene;
43
AbstractGrid(QObject* parent = 0);
44
virtual ~AbstractGrid();
46
QAbstractItemModel* model() const;
47
QModelIndex rootIndex() const;
49
virtual Span mapToChart( const QModelIndex& idx ) const = 0;
50
virtual bool mapFromChart( const Span& span, const QModelIndex& idx,
51
const QList<Constraint>& constraints=QList<Constraint>() ) const = 0;
52
virtual qreal mapToChart( const QVariant &value ) const;
53
virtual QVariant mapFromChart( qreal x ) const;
55
bool isSatisfiedConstraint( const Constraint& c ) const;
57
virtual void paintGrid( QPainter* painter, const QRectF& sceneRect, const QRectF& exposedRect,
58
AbstractRowController* rowController = 0, QWidget* widget=0 ) = 0;
59
virtual void paintHeader( QPainter* painter, const QRectF& headerRect, const QRectF& exposedRect,
60
qreal offset, QWidget* widget=0 ) = 0;
62
virtual void render( QPainter* /*painter*/, const QRectF & /*target*/, const QRectF& /*headerRect*/, const QRectF& /*exposedRect*/, QWidget* /*widget*/, Qt::AspectRatioMode /*aspectRatioMode*/ = Qt::KeepAspectRatio ) {}
65
/*internal*/ virtual void setModel( QAbstractItemModel* model );
66
/*internal*/ virtual void setRootIndex( const QModelIndex& idx );
72
#endif /* KDGANTTABSTRACTGRID_H */