File indexing completed on 2024-05-05 04:02:03

0001 /*
0002     SPDX-FileCopyrightText: 2007-2008 John-Paul Stanford <jp@stanwood.org.uk>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef BOMBER_H
0008 #define BOMBER_H
0009 
0010 // KF
0011 #include <KXmlGuiWindow>
0012 
0013 // KDEGames
0014 #include <KGameThemeProvider>
0015 
0016 // Bomber
0017 #include "bomberwidget.h"
0018 
0019 class QAction;
0020 class QStatusBar;
0021 class KToggleAction;
0022 class KGameThemeSelector;
0023 class QLabel;
0024 
0025 /**
0026  * This class serves as the main window for Bomber.  It handles the
0027  * menus, toolbars, and status bars.
0028  *
0029  * @short Main window class
0030  */
0031 class Bomber : public KXmlGuiWindow
0032 {
0033     Q_OBJECT
0034 public:
0035     Bomber();
0036     ~Bomber() override;
0037 
0038     void readSettings();
0039 
0040 private Q_SLOTS:
0041     void closeGame();
0042     void newGame();
0043     void pauseGame();
0044     void showHighscore();
0045     void showPreferences();
0046 
0047     void displayLevel(unsigned int level);
0048     void displayScore(unsigned int score);
0049     void displayLives(unsigned int lives);
0050     void gameStateChanged(BomberGameWidget::State state);
0051 
0052 private:
0053     void highscore();
0054     void initXMLUI();
0055 
0056     KGameThemeProvider m_provider;
0057     KGameThemeSelector * m_selector;
0058 
0059     BomberGameWidget * m_gameWidget;
0060     QStatusBar * m_statusBar;
0061 
0062     KToggleAction *m_pauseAction, *m_backgroundShowAction, *m_soundAction;
0063     QAction * m_newAction;
0064     QLabel *m_level, *m_score, *m_lives;
0065 };
0066 
0067 #endif