Add Game|Close menu item
[sloppygui.git] / projects / gui / src / mainwindow.h
blob8fc447080534bdb0dedff2f0cda26f76af1bb7c2
1 /*
2 This file is part of Cute Chess.
4 Cute Chess is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
9 Cute Chess is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with Cute Chess. If not, see <http://www.gnu.org/licenses/>.
18 #ifndef MAINWINDOW_H
19 #define MAINWINDOW_H
21 #include <QMainWindow>
22 #include <board/side.h>
24 namespace Chess { class Board; class Move; }
25 class QMenu;
26 class QAction;
27 class QTextEdit;
28 class ChessboardView;
29 class ChessboardModel;
30 class MoveListModel;
31 class EngineConfigurationModel;
32 class ChessClock;
33 class PlainTextLog;
35 /**
36 * MainWindow
38 class MainWindow : public QMainWindow
40 Q_OBJECT
42 public:
43 MainWindow();
45 signals:
46 void promotionMove(const Chess::Move& move, Chess::Side side);
48 private slots:
49 void newGame();
50 void selectPromotion(const Chess::Board* board,
51 const Chess::Move& move,
52 const QList<int>& promotions);
53 void gameProperties();
54 void manageEngines();
55 void saveLogToFile();
56 void onWindowMenuAboutToShow();
57 void showGameWindow();
59 private:
60 void createActions();
61 void createMenus();
62 void createToolBars();
63 void createDockWindows();
64 void readSettings();
66 QMenu* m_gameMenu;
67 QMenu* m_viewMenu;
68 QMenu* m_enginesMenu;
69 QMenu* m_windowMenu;
70 QMenu* m_helpMenu;
72 ChessboardView* m_chessboardView;
73 ChessboardModel* m_boardModel;
74 MoveListModel* m_moveListModel;
75 ChessClock* m_chessClock[2];
77 QAction* m_quitGameAct;
78 QAction* m_gamePropertiesAct;
79 QAction* m_newGameAct;
80 QAction* m_closeGameAct;
81 QAction* m_manageEnginesAct;
83 PlainTextLog* m_engineDebugLog;
87 #endif // MAINWINDOW_H