/*
 * =====================================================================================
 *
 *       Filename:  QtChessBoard.h
 *
 *    Description:  Widget to display the board
 *
 *        Version:  1.0
 *        Created:  21/02/2011 07:35:14
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  John Ryland (jryland), jryland@xiaofrog.com
 *        Company:  InvertedLogic
 *
 * =====================================================================================
 */

#ifndef __QT_CHESS_BOARD_H__
#define __QT_CHESS_BOARD_H__


#include <QWidget>
#include <AbstractChessBoard.h>


class QtChessBoard : public QWidget
{
public:
    QtChessBoard(QWidget *parent = 0, AbstractChessBoard *board = 0);
    ~QtChessBoard();
protected:
    void paintEvent(QPaintEvent *pe);
    void mouseMoveEvent(QMouseEvent *me);
    void mousePressEvent(QMouseEvent *me);
    void mouseReleaseEvent(QMouseEvent *me);
    void timerEvent(QTimerEvent *te);
private:
    AbstractChessBoard *board;

    ChessBoardPosition cursor;
    ChessBoardPosition selected;
    bool haveCursor;
    bool haveSelected;
    int mx, my;

    QFile *f;
};


#endif // __QT_CHESS_BOARD_H__


