1 /*
2     SPDX-FileCopyrightText: 2008-2010 Stefan Majewsky <majewsky@gmx.net>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #ifndef KDIAMOND_MAINWINDOW_H
8 #define KDIAMOND_MAINWINDOW_H
9 
10 class Game;
11 #include "game-state.h"
12 
13 class QAction;
14 class KActionMenu;
15 class KGameRenderer;
16 
17 #include <KXmlGuiWindow>
18 #include <KgThemeSelector>
19 
20 namespace KDiamond
21 {
22 class InfoBar;
23 class View;
24 }
25 
26 class MainWindow : public KXmlGuiWindow
27 {
28     Q_OBJECT
29 public:
30     explicit MainWindow(QWidget *parent = nullptr);
31     ~MainWindow() override;
32 public Q_SLOTS:
33     void startGame(KDiamond::Mode mode);
34     void startGameDispatcher();
35     void stateChange(KDiamond::State state);
36     void gameIsOver();
37     void showHighscores();
38     void showPreferences();
39 
40     void configureNotifications();
41 Q_SIGNALS:
42     void pause(bool paused);
43 protected Q_SLOTS:
44     void pausedAction(bool paused);
45 private:
46     KDiamond::GameState *m_gameState;
47     Game *m_game;
48     KDiamond::View *m_view;
49 
50     KDiamond::InfoBar *m_infoBar;
51 
52     KActionMenu *m_newAct;
53     QAction *m_newTimedAct;
54     QAction *m_newUntimedAct;
55     QAction *m_pauseAct;
56     QAction *m_hintAct;
57     KGameRenderer *m_renderer;
58     KgThemeSelector m_selector;
59 };
60 
61 #endif //KDIAMOND_MAINWINDOW_H
62