Eneboo - Documentación para desarrolladores
|
00001 /********************************************************************** 00002 ** $Id: qt/qgridview.h 3.3.8 edited Jan 11 14:38 $ 00003 ** 00004 ** Definition of QGridView class 00005 ** 00006 ** Created : 010523 00007 ** 00008 ** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. 00009 ** 00010 ** This file is part of the widgets module of the Qt GUI Toolkit. 00011 ** 00012 ** This file may be distributed under the terms of the Q Public License 00013 ** as defined by Trolltech ASA of Norway and appearing in the file 00014 ** LICENSE.QPL included in the packaging of this file. 00015 ** 00016 ** This file may be distributed and/or modified under the terms of the 00017 ** GNU General Public License version 2 as published by the Free Software 00018 ** Foundation and appearing in the file LICENSE.GPL included in the 00019 ** packaging of this file. 00020 ** 00021 ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition 00022 ** licenses may use this file in accordance with the Qt Commercial License 00023 ** Agreement provided with the Software. 00024 ** 00025 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00026 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00027 ** 00028 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for 00029 ** information about Qt Commercial License Agreements. 00030 ** See http://www.trolltech.com/qpl/ for QPL licensing information. 00031 ** See http://www.trolltech.com/gpl/ for GPL licensing information. 00032 ** 00033 ** Contact info@trolltech.com if any conditions of this licensing are 00034 ** not clear to you. 00035 ** 00036 **********************************************************************/ 00037 00038 #ifndef QGRIDVIEW_H 00039 #define QGRIDVIEW_H 00040 00041 #ifndef QT_H 00042 #include "qscrollview.h" 00043 #endif // QT_H 00044 00045 #ifndef QT_NO_GRIDVIEW 00046 00047 class QGridViewPrivate; 00048 00049 class Q_EXPORT QGridView : public QScrollView 00050 { 00051 Q_OBJECT 00052 Q_PROPERTY( int numRows READ numRows WRITE setNumRows ) 00053 Q_PROPERTY( int numCols READ numCols WRITE setNumCols ) 00054 Q_PROPERTY( int cellWidth READ cellWidth WRITE setCellWidth ) 00055 Q_PROPERTY( int cellHeight READ cellHeight WRITE setCellHeight ) 00056 public: 00057 00058 QGridView( QWidget *parent=0, const char *name=0, WFlags f=0 ); 00059 ~QGridView(); 00060 00061 int numRows() const; 00062 virtual void setNumRows( int ); 00063 int numCols() const; 00064 virtual void setNumCols( int ); 00065 00066 int cellWidth() const; 00067 virtual void setCellWidth( int ); 00068 int cellHeight() const; 00069 virtual void setCellHeight( int ); 00070 00071 QRect cellRect() const; 00072 QRect cellGeometry( int row, int column ); 00073 QSize gridSize() const; 00074 00075 int rowAt( int y ) const; 00076 int columnAt( int x ) const; 00077 00078 void repaintCell( int row, int column, bool erase=TRUE ); 00079 void updateCell( int row, int column ); 00080 void ensureCellVisible( int row, int column ); 00081 00082 protected: 00083 virtual void paintCell( QPainter *, int row, int col ) = 0; 00084 virtual void paintEmptyArea( QPainter *p, int cx, int cy, int cw, int ch ); 00085 00086 void drawContents( QPainter *p, int cx, int cy, int cw, int ch ); 00087 00088 virtual void dimensionChange( int, int ); 00089 00090 private: 00091 void drawContents( QPainter* ); 00092 void updateGrid(); 00093 00094 int nrows; 00095 int ncols; 00096 int cellw; 00097 int cellh; 00098 QGridViewPrivate* d; 00099 00100 private: // Disabled copy constructor and operator= 00101 #if defined(Q_DISABLE_COPY) 00102 QGridView( const QGridView & ); 00103 QGridView &operator=( const QGridView & ); 00104 #endif 00105 }; 00106 00107 inline int QGridView::cellWidth() const 00108 { return cellw; } 00109 00110 inline int QGridView::cellHeight() const 00111 { return cellh; } 00112 00113 inline int QGridView::rowAt( int y ) const 00114 { return y / cellh; } 00115 00116 inline int QGridView::columnAt( int x ) const 00117 { return x / cellw; } 00118 00119 inline int QGridView::numRows() const 00120 { return nrows; } 00121 00122 inline int QGridView::numCols() const 00123 {return ncols; } 00124 00125 inline QRect QGridView::cellRect() const 00126 { return QRect( 0, 0, cellw, cellh ); } 00127 00128 inline QSize QGridView::gridSize() const 00129 { return QSize( ncols * cellw, nrows * cellh ); } 00130 00131 00132 00133 #endif // QT_NO_GRIDVIEW 00134 00135 00136 #endif // QTABLEVIEW_H