summaryrefslogtreecommitdiff
path: root/noncore/games/minesweep/minefield.h
Side-by-side diff
Diffstat (limited to 'noncore/games/minesweep/minefield.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/minesweep/minefield.h30
1 files changed, 22 insertions, 8 deletions
diff --git a/noncore/games/minesweep/minefield.h b/noncore/games/minesweep/minefield.h
index 4ede435..1349c35 100644
--- a/noncore/games/minesweep/minefield.h
+++ b/noncore/games/minesweep/minefield.h
@@ -21,10 +21,10 @@
#define MINEFIELD_H
-#include <qtable.h>
+#include <qscrollview.h>
class Mine;
class Config;
-class MineField : public QTable
+class MineField : public QScrollView
{
Q_OBJECT
@@ -42,4 +42,5 @@ public:
int level() const { return lev; }
+ void setAvailableRect( const QRect & );
public slots:
void setup( int level );
@@ -53,15 +54,20 @@ signals:
protected:
- void paintFocus( QPainter*, const QRect& );
- void viewportMousePressEvent( QMouseEvent* );
- void viewportMouseReleaseEvent( QMouseEvent* );
+
+ void contentsMousePressEvent( QMouseEvent* );
+ void contentsMouseReleaseEvent( QMouseEvent* );
void keyPressEvent( QKeyEvent* );
void keyReleaseEvent( QKeyEvent* );
-
+ void drawContents( QPainter * p, int clipx, int clipy, int clipw, int cliph );
+
int getHint( int row, int col );
- void setHint( Mine* );
+ void setHint( int r, int c );
void updateMine( int row, int col );
void paletteChange( const QPalette & );
-
+ void updateCell( int r, int c );
+ bool onBoard( int r, int c ) const { return r >= 0 && r < numRows && c >= 0 && c < numCols; }
+ Mine *mine( int row, int col ) { return onBoard(row, col ) ? mines[row+numCols*col] : 0; }
+ const Mine *mine( int row, int col ) const { return onBoard(row, col ) ? mines[row+numCols*col] : 0; }
+
protected slots:
void cellPressed( int row, int col );
@@ -70,4 +76,7 @@ protected slots:
private:
+ int findCellSize();
+ void setCellSize( int );
+
State stat;
void MineField::setState( State st );
@@ -78,9 +87,14 @@ private:
int currRow;
int currCol;
+ int numRows, numCols;
+
int minecount;
int mineguess;
int nonminecount;
int lev;
+ QRect availableRect;
+ int cellSize;
QTimer *holdTimer;
+ Mine **mines;
};