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

0001 /******************************************************************************
0002 *   KBlocks, a falling blocks game by KDE                                     *
0003 *   SPDX-FileCopyrightText: 2009-2021 Julian Helfferich <julian.helfferich@mailbox.org> *
0004 *                                                                             *
0005 *   SPDX-License-Identifier: GPL-2.0-or-later
0006 ******************************************************************************/
0007 
0008 #ifndef SCENEINTERFACE_H
0009 #define SCENEINTERFACE_H
0010 
0011 #include <QGraphicsScene>
0012 
0013 class KGameTheme;
0014 
0015 class SceneInterface : public QGraphicsScene
0016 {
0017     Q_OBJECT
0018 public:
0019     SceneInterface();
0020     ~SceneInterface() override = default;
0021 
0022 public:
0023     virtual void createGameItemGroups(int, bool snapshotMode = false) = 0;
0024     virtual void deleteGameItemGroups() = 0;
0025     virtual void setGamesPerLine(int) = 0;
0026     virtual void setGameAnimEnabled(bool) = 0;
0027     virtual void setWaitForAllUpdate(bool) = 0;
0028     virtual void setUpdateInterval(int) = 0;
0029     virtual void setSoundsEnabled(bool) = 0;
0030     virtual void readSettings() = 0;
0031     virtual void loadTheme(const KGameTheme *theme) = 0;
0032     virtual void startGame() = 0;
0033     virtual void stopGame() = 0;
0034     virtual void pauseGame(bool, bool fromUI = false) = 0;
0035     virtual void addScore(int, int) = 0;
0036 
0037 Q_SIGNALS:
0038     void scoreChanged(int index, int points, int lines, int level);
0039     void isHighscore(int index, int points, int level);
0040 
0041 public Q_SLOTS:
0042     virtual void playMoveSound() = 0;
0043     virtual void playDropSound() = 0;
0044 };
0045 
0046 #endif // SCENEINTERFACE_H