1 /**********************************************************************
2 ** $Id: qt/qgridview.h 3.3.8 edited Jan 11 14:38 $
3 **
4 ** Definition of QGridView class
5 **
6 ** Created : 010523
7 **
8 ** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.
9 **
10 ** This file is part of the widgets module of the Qt GUI Toolkit.
11 **
12 ** This file may be distributed under the terms of the Q Public License
13 ** as defined by Trolltech ASA of Norway and appearing in the file
14 ** LICENSE.QPL included in the packaging of this file.
15 **
16 ** This file may be distributed and/or modified under the terms of the
17 ** GNU General Public License version 2 as published by the Free Software
18 ** Foundation and appearing in the file LICENSE.GPL included in the
19 ** packaging of this file.
20 **
21 ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
22 ** licenses may use this file in accordance with the Qt Commercial License
23 ** Agreement provided with the Software.
24 **
25 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
26 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27 **
28 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
29 ** information about Qt Commercial License Agreements.
30 ** See http://www.trolltech.com/qpl/ for QPL licensing information.
31 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
32 **
33 ** Contact info@trolltech.com if any conditions of this licensing are
34 ** not clear to you.
35 **
36 **********************************************************************/
37
38 #ifndef QGRIDVIEW_H
39 #define QGRIDVIEW_H
40
41 #ifndef QT_H
42 #include "qscrollview.h"
43 #endif // QT_H
44
45 #ifndef QT_NO_GRIDVIEW
46
47 class QGridViewPrivate;
48
49 class Q_EXPORT QGridView : public QScrollView
50 {
51 Q_OBJECT
52 Q_PROPERTY( int numRows READ numRows WRITE setNumRows )
53 Q_PROPERTY( int numCols READ numCols WRITE setNumCols )
54 Q_PROPERTY( int cellWidth READ cellWidth WRITE setCellWidth )
55 Q_PROPERTY( int cellHeight READ cellHeight WRITE setCellHeight )
56 public:
57
58 QGridView( QWidget *parent=0, const char *name=0, WFlags f=0 );
59 ~QGridView();
60
61 int numRows() const;
62 virtual void setNumRows( int );
63 int numCols() const;
64 virtual void setNumCols( int );
65
66 int cellWidth() const;
67 virtual void setCellWidth( int );
68 int cellHeight() const;
69 virtual void setCellHeight( int );
70
71 QRect cellRect() const;
72 QRect cellGeometry( int row, int column );
73 QSize gridSize() const;
74
75 int rowAt( int y ) const;
76 int columnAt( int x ) const;
77
78 void repaintCell( int row, int column, bool erase=TRUE );
79 void updateCell( int row, int column );
80 void ensureCellVisible( int row, int column );
81
82 protected:
83 virtual void paintCell( QPainter *, int row, int col ) = 0;
84 virtual void paintEmptyArea( QPainter *p, int cx, int cy, int cw, int ch );
85
86 void drawContents( QPainter *p, int cx, int cy, int cw, int ch );
87
88 virtual void dimensionChange( int, int );
89
90 private:
91 void drawContents( QPainter* );
92 void updateGrid();
93
94 int nrows;
95 int ncols;
96 int cellw;
97 int cellh;
98 QGridViewPrivate* d;
99
100 private: // Disabled copy constructor and operator=
101 #if defined(Q_DISABLE_COPY)
102 QGridView( const QGridView & );
103 QGridView &operator=( const QGridView & );
104 #endif
105 };
106
cellWidth()107 inline int QGridView::cellWidth() const
108 { return cellw; }
109
cellHeight()110 inline int QGridView::cellHeight() const
111 { return cellh; }
112
rowAt(int y)113 inline int QGridView::rowAt( int y ) const
114 { return y / cellh; }
115
columnAt(int x)116 inline int QGridView::columnAt( int x ) const
117 { return x / cellw; }
118
numRows()119 inline int QGridView::numRows() const
120 { return nrows; }
121
numCols()122 inline int QGridView::numCols() const
123 {return ncols; }
124
cellRect()125 inline QRect QGridView::cellRect() const
126 { return QRect( 0, 0, cellw, cellh ); }
127
gridSize()128 inline QSize QGridView::gridSize() const
129 { return QSize( ncols * cellw, nrows * cellh ); }
130
131
132
133 #endif // QT_NO_GRIDVIEW
134
135
136 #endif // QTABLEVIEW_H
137