~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to src/qt3support/widgets/q3gridview.h

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-08-24 04:09:09 UTC
  • Revision ID: james.westby@ubuntu.com-20050824040909-xmxe9jfr4a0w5671
Tags: upstream-4.0.0
ImportĀ upstreamĀ versionĀ 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
 
4
**
 
5
** This file is part of the Qt 3 compatibility classes of the Qt Toolkit.
 
6
**
 
7
** This file may be distributed under the terms of the Q Public License
 
8
** as defined by Trolltech AS of Norway and appearing in the file
 
9
** LICENSE.QPL included in the packaging of this file.
 
10
**
 
11
** This file may be distributed and/or modified under the terms of the
 
12
** GNU General Public License version 2 as published by the Free Software
 
13
** Foundation and appearing in the file LICENSE.GPL included in the
 
14
** packaging of this file.
 
15
**
 
16
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
 
17
**   information about Qt Commercial License Agreements.
 
18
** See http://www.trolltech.com/qpl/ for QPL licensing information.
 
19
** See http://www.trolltech.com/gpl/ for GPL licensing information.
 
20
**
 
21
** Contact info@trolltech.com if any conditions of this licensing are
 
22
** not clear to you.
 
23
**
 
24
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 
25
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
26
**
 
27
****************************************************************************/
 
28
 
 
29
#ifndef Q3GRIDVIEW_H
 
30
#define Q3GRIDVIEW_H
 
31
 
 
32
#include "Qt3Support/q3scrollview.h"
 
33
 
 
34
class Q3GridViewPrivate;
 
35
 
 
36
class Q_COMPAT_EXPORT Q3GridView : public Q3ScrollView
 
37
{
 
38
    Q_OBJECT
 
39
    Q_PROPERTY(int numRows READ numRows WRITE setNumRows)
 
40
    Q_PROPERTY(int numCols READ numCols WRITE setNumCols)
 
41
    Q_PROPERTY(int cellWidth READ cellWidth WRITE setCellWidth)
 
42
    Q_PROPERTY(int cellHeight READ cellHeight WRITE setCellHeight)
 
43
public:
 
44
 
 
45
    Q3GridView(QWidget *parent=0, const char *name=0, Qt::WFlags f=0);
 
46
   ~Q3GridView();
 
47
 
 
48
    int numRows() const;
 
49
    virtual void setNumRows(int);
 
50
    int numCols() const;
 
51
    virtual void setNumCols(int);
 
52
 
 
53
    int cellWidth() const;
 
54
    virtual void setCellWidth(int);
 
55
    int cellHeight() const;
 
56
    virtual void setCellHeight(int);
 
57
 
 
58
    QRect cellRect() const;
 
59
    QRect cellGeometry(int row, int column);
 
60
    QSize gridSize() const;
 
61
 
 
62
    int rowAt(int y) const;
 
63
    int columnAt(int x) const;
 
64
 
 
65
    void repaintCell(int row, int column, bool erase=true);
 
66
    void updateCell(int row, int column);
 
67
    void ensureCellVisible(int row, int column);
 
68
 
 
69
protected:
 
70
    virtual void paintCell(QPainter *, int row, int col) = 0;
 
71
    virtual void paintEmptyArea(QPainter *p, int cx, int cy, int cw, int ch);
 
72
 
 
73
    void drawContents(QPainter *p, int cx, int cy, int cw, int ch);
 
74
 
 
75
    virtual void dimensionChange(int, int);
 
76
 
 
77
private:
 
78
    void drawContents(QPainter*);
 
79
    void updateGrid();
 
80
 
 
81
    int nrows;
 
82
    int ncols;
 
83
    int cellw;
 
84
    int cellh;
 
85
    Q3GridViewPrivate* d;
 
86
 
 
87
    Q_DISABLE_COPY(Q3GridView)
 
88
};
 
89
 
 
90
inline int Q3GridView::cellWidth() const
 
91
{ return cellw; }
 
92
 
 
93
inline int Q3GridView::cellHeight() const
 
94
{ return cellh; }
 
95
 
 
96
inline int Q3GridView::rowAt(int y) const
 
97
{ return y / cellh; }
 
98
 
 
99
inline int Q3GridView::columnAt(int x) const
 
100
{ return x / cellw; }
 
101
 
 
102
inline int Q3GridView::numRows() const
 
103
{ return nrows; }
 
104
 
 
105
inline int Q3GridView::numCols() const
 
106
{return ncols; }
 
107
 
 
108
inline QRect Q3GridView::cellRect() const
 
109
{ return QRect(0, 0, cellw, cellh); }
 
110
 
 
111
inline QSize Q3GridView::gridSize() const
 
112
{ return QSize(ncols * cellw, nrows * cellh); }
 
113
 
 
114
#endif // Q3GRIDVIEW_H