summaryrefslogtreecommitdiff
path: root/noncore/games/chess/chess.h
Side-by-side diff
Diffstat (limited to 'noncore/games/chess/chess.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/chess/chess.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/noncore/games/chess/chess.h b/noncore/games/chess/chess.h
new file mode 100644
index 0000000..067b2f8
--- a/dev/null
+++ b/noncore/games/chess/chess.h
@@ -0,0 +1,128 @@
+/**********************************************************************
+** Copyright (C) 2000 Trolltech AS. All rights reserved.
+**
+** This file is part of Qtopia Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+** $Id$
+**
+**********************************************************************/
+#ifndef CHESS_H
+#define CHESS_H
+
+#include <qwidget.h>
+#include <qcanvas.h>
+#include <qmainwindow.h>
+#include <qpixmap.h>
+#include <qimage.h>
+#include <qstack.h>
+#include <qvector.h>
+#include <qpe/process.h>
+
+#define wPawn 'P'
+#define wKnight 'N'
+#define wBishop 'B'
+#define wRook 'R'
+#define wQueen 'Q'
+#define wKing 'K'
+#define bPawn 'p'
+#define bKnight 'n'
+#define bBishop 'b'
+#define bRook 'r'
+#define bQueen 'q'
+#define bKing 'k'
+#define NONE N
+
+#define sideWhite 0
+#define sideBlack 1
+
+
+class Piece:public QCanvasRectangle {
+ public:
+ Piece(QCanvas *, int);
+ ~Piece() {
+ };
+
+ char type;
+
+ protected:
+ void drawShape(QPainter &);
+};
+
+
+class CraftyProcess : public Process {
+ public:
+ CraftyProcess(QObject *parent) : Process( parent ) { qDebug("CraftyProcess functions not implemented"); }
+ ~CraftyProcess() { }
+ bool start() { qDebug("CraftyProcess functions not implemented"); return FALSE; }
+ const char *readStdout() { qDebug("CraftyProcess functions not implemented"); return "Blah"; }
+ void writeToStdin(const char *) { qDebug("CraftyProcess functions not implemented"); }
+};
+
+
+class BoardView:public QCanvasView {
+ Q_OBJECT public:
+ BoardView(QCanvas *, QWidget *, const char *);
+ ~BoardView() {
+ };
+
+ protected:
+ void contentsMousePressEvent(QMouseEvent *);
+
+ signals:
+ void showMessage(const QString &);
+
+ public slots:void readStdout();
+ void craftyDied() {
+ qFatal("Crafty died unexpectedly\n");
+ };
+ void newGame();
+ void setTheme(QString);
+ void swapSides();
+ void undo();
+ void annotateGame();
+
+ private:
+ CraftyProcess * crafty;
+ QList < Piece > list;
+ Piece *activePiece;
+
+ void revertLastMove();
+ void emitErrorMessage();
+ void drawBackgroundImage(QPoint activeSquare);
+
+ void buildImages(QImage);
+
+ char convertToFile(int);
+ int convertToRank(int);
+ int convertFromFile(char);
+ int convertFromRank(int);
+
+ void decodePosition(const QString & t);
+
+ Piece *findPiece(char f, int r);
+ Piece *newPiece(int, char, int);
+ void deletePiece(Piece *);
+
+ int pieceSize;
+ QPixmap bg;
+ QImage whiteSquare, blackSquare, activeWhiteSquare, activeBlackSquare;
+
+ bool humanSide;
+ bool activeSide;
+ bool playingGame;
+};
+
+#endif