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