File indexing completed on 2024-04-21 04:02:13

0001 /*
0002     SPDX-FileCopyrightText: 2008-2010 Stefan Majewsky <majewsky@gmx.net>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef KDIAMOND_MAINWINDOW_H
0008 #define KDIAMOND_MAINWINDOW_H
0009 
0010 class Game;
0011 #include "game-state.h"
0012 
0013 class QAction;
0014 class KActionMenu;
0015 class KGameGraphicsViewRenderer;
0016 
0017 #include <KXmlGuiWindow>
0018 #include <KGameThemeSelector>
0019 
0020 namespace KDiamond
0021 {
0022 class InfoBar;
0023 class View;
0024 }
0025 
0026 class MainWindow : public KXmlGuiWindow
0027 {
0028     Q_OBJECT
0029 public:
0030     explicit MainWindow(QWidget *parent = nullptr);
0031     ~MainWindow() override;
0032 public Q_SLOTS:
0033     void startGame(KDiamond::Mode mode);
0034     void startGameDispatcher();
0035     void stateChange(KDiamond::State state);
0036     void gameIsOver();
0037     void showHighscores();
0038     void showPreferences();
0039 
0040     void configureNotifications();
0041 Q_SIGNALS:
0042     void pause(bool paused);
0043 protected Q_SLOTS:
0044     void pausedAction(bool paused);
0045 private:
0046     KDiamond::GameState *m_gameState;
0047     Game *m_game;
0048     KDiamond::View *m_view;
0049 
0050     KDiamond::InfoBar *m_infoBar;
0051 
0052     KActionMenu *m_newAct;
0053     QAction *m_newTimedAct;
0054     QAction *m_newUntimedAct;
0055     QAction *m_pauseAct;
0056     QAction *m_hintAct;
0057     KGameGraphicsViewRenderer *m_renderer;
0058     KGameThemeSelector m_selector;
0059 };
0060 
0061 #endif //KDIAMOND_MAINWINDOW_H