1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249
|
/**********************************************************************
** $Id$
**
** Definition of QtTableView class
**
** Created : 941115
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file contains a class moved out of the Qt GUI Toolkit API. It
** may be used, distributed and modified without limitation.
**
**********************************************************************/
#ifndef QTTABLEVIEW_H
#define QTTABLEVIEW_H
#ifndef QT_H
#include "qframe.h"
#endif // QT_H
#ifndef QT_NO_QTTABLEVIEW
class QScrollBar;
class QCornerSquare;
class QtTableView : public QFrame
{
Q_OBJECT
public:
void repaint( bool erase=true );
void repaint( int x, int y, int w, int h, bool erase=true );
void repaint( const QRect &, bool erase=true );
protected:
QtTableView( QWidget *parent=0, const char *name=0, Qt::WFlags f=0 );
~QtTableView();
int numRows() const;
virtual void setNumRows( int );
int numCols() const;
virtual void setNumCols( int );
int topCell() const;
virtual void setTopCell( int row );
int leftCell() const;
virtual void setLeftCell( int col );
virtual void setTopLeftCell( int row, int col );
int xOffset() const;
virtual void setXOffset( int );
int yOffset() const;
virtual void setYOffset( int );
virtual void setOffset( int x, int y, bool updateScrBars = true );
virtual int cellWidth( int col );
virtual int cellHeight( int row );
int cellWidth() const;
int cellHeight() const;
virtual void setCellWidth( int );
virtual void setCellHeight( int );
virtual int totalWidth();
virtual int totalHeight();
uint tableFlags() const;
bool testTableFlags( uint f ) const;
virtual void setTableFlags( uint f );
void clearTableFlags( uint f = ~0 );
bool autoUpdate() const;
virtual void setAutoUpdate( bool );
void updateCell( int row, int column, bool erase=true );
QRect cellUpdateRect() const;
QRect viewRect() const;
int lastRowVisible() const;
int lastColVisible() const;
bool rowIsVisible( int row ) const;
bool colIsVisible( int col ) const;
QScrollBar *verticalScrollBar() const;
QScrollBar *horizontalScrollBar() const;
private slots:
void horSbValue( int );
void horSbSliding( int );
void horSbSlidingDone();
void verSbValue( int );
void verSbSliding( int );
void verSbSlidingDone();
protected:
virtual void paintCell( QPainter *, int row, int col ) = 0;
virtual void setupPainter( QPainter * );
void paintEvent( QPaintEvent * );
void resizeEvent( QResizeEvent * );
virtual void showEvent( QShowEvent * );
virtual void wheelEvent( QWheelEvent *e );
int findRow( int yPos ) const;
int findCol( int xPos ) const;
bool rowYPos( int row, int *yPos ) const;
bool colXPos( int col, int *xPos ) const;
int maxXOffset();
int maxYOffset();
int maxColOffset();
int maxRowOffset();
int minViewX() const;
int minViewY() const;
int maxViewX() const;
int maxViewY() const;
int viewWidth() const;
int viewHeight() const;
void scroll( int xPixels, int yPixels );
void updateScrollBars();
void updateTableSize();
private:
void coverCornerSquare( bool );
void snapToGrid( bool horizontal, bool vertical );
virtual void setHorScrollBar( bool on, bool update = true );
virtual void setVerScrollBar( bool on, bool update = true );
void updateView();
int findRawRow( int yPos, int *cellMaxY, int *cellMinY = 0,
bool goOutsideView = false ) const;
int findRawCol( int xPos, int *cellMaxX, int *cellMinX = 0,
bool goOutsideView = false ) const;
int maxColsVisible() const;
void updateScrollBars( uint );
void updateFrameSize();
void doAutoScrollBars();
void showOrHideScrollBars();
int nRows;
int nCols;
int xOffs, yOffs;
int xCellOffs, yCellOffs;
short xCellDelta, yCellDelta;
short cellH, cellW;
uint eraseInPaint : 1;
uint verSliding : 1;
uint verSnappingOff : 1;
uint horSliding : 1;
uint horSnappingOff : 1;
uint coveringCornerSquare : 1;
uint sbDirty : 8;
uint inSbUpdate : 1;
uint tFlags;
QRect cellUpdateR;
QScrollBar *vScrollBar;
QScrollBar *hScrollBar;
QCornerSquare *cornerSquare;
private: // Disabled copy constructor and operator=
#if defined(Q_DISABLE_COPY)
QtTableView( const QtTableView & );
QtTableView &operator=( const QtTableView & );
#endif
};
const uint Tbl_vScrollBar = 0x00000001;
const uint Tbl_hScrollBar = 0x00000002;
const uint Tbl_autoVScrollBar = 0x00000004;
const uint Tbl_autoHScrollBar = 0x00000008;
const uint Tbl_autoScrollBars = 0x0000000C;
const uint Tbl_clipCellPainting = 0x00000100;
const uint Tbl_cutCellsV = 0x00000200;
const uint Tbl_cutCellsH = 0x00000400;
const uint Tbl_cutCells = 0x00000600;
const uint Tbl_scrollLastHCell = 0x00000800;
const uint Tbl_scrollLastVCell = 0x00001000;
const uint Tbl_scrollLastCell = 0x00001800;
const uint Tbl_smoothHScrolling = 0x00002000;
const uint Tbl_smoothVScrolling = 0x00004000;
const uint Tbl_smoothScrolling = 0x00006000;
const uint Tbl_snapToHGrid = 0x00008000;
const uint Tbl_snapToVGrid = 0x00010000;
const uint Tbl_snapToGrid = 0x00018000;
inline int QtTableView::numRows() const
{ return nRows; }
inline int QtTableView::numCols() const
{ return nCols; }
inline int QtTableView::topCell() const
{ return yCellOffs; }
inline int QtTableView::leftCell() const
{ return xCellOffs; }
inline int QtTableView::xOffset() const
{ return xOffs; }
inline int QtTableView::yOffset() const
{ return yOffs; }
inline int QtTableView::cellHeight() const
{ return cellH; }
inline int QtTableView::cellWidth() const
{ return cellW; }
inline uint QtTableView::tableFlags() const
{ return tFlags; }
inline bool QtTableView::testTableFlags( uint f ) const
{ return (tFlags & f) != 0; }
inline QRect QtTableView::cellUpdateRect() const
{ return cellUpdateR; }
inline bool QtTableView::autoUpdate() const
{ return updatesEnabled(); }
inline void QtTableView::repaint( bool erase )
{ repaint( 0, 0, width(), height(), erase ); }
inline void QtTableView::repaint( const QRect &r, bool erase )
{ repaint( r.x(), r.y(), r.width(), r.height(), erase ); }
inline void QtTableView::updateScrollBars()
{ updateScrollBars( 0 ); }
#endif // QT_NO_QTTABLEVIEW
#endif // QTTABLEVIEW_H
|