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

0001 /*
0002     KBlackBox - A simple game inspired by an emacs module
0003 
0004     SPDX-FileCopyrightText: 2007 Nicolas Roffet <nicolas-kde@roffet.com>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #ifndef KBBGRAPHICSITEMBALLREPOSITORY_H
0010 #define KBBGRAPHICSITEMBALLREPOSITORY_H
0011 
0012 #include "kbbgraphicsitem.h"
0013 class KBBGraphicsItemSet;
0014 class KBBScalableGraphicWidget;
0015 class KBBThemeManager;
0016 
0017 
0018 
0019 /**
0020  * @brief The balls the player has to place
0021  */
0022 class KBBGraphicsItemBallRepository : public KBBGraphicsItem
0023 {
0024     Q_OBJECT
0025 
0026 
0027     public:
0028         KBBGraphicsItemBallRepository(KBBScalableGraphicWidget* parent, KBBThemeManager* themeManager);
0029         ~KBBGraphicsItemBallRepository() override;
0030 
0031 
0032         int ballToTake() const;
0033         void fillBallsOutside(int placed);
0034         void newGame(int columns, int rows, int balls);
0035         void removeBall(int outsidePosition);
0036 
0037 
0038     private:
0039         KBBGraphicsItemSet* m_ballsOutside;
0040         KBBScalableGraphicWidget* m_parent;
0041         KBBThemeManager* m_themeManager;
0042 
0043         int m_columns;
0044         int m_rows;
0045         int m_width;
0046         int m_height;
0047         int m_ballToPlace;
0048 };
0049 
0050 #endif // KBBGRAPHICSITEMBALLREPOSITORY_H