File indexing completed on 2024-04-14 03:59:19

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 
0010 
0011 #ifndef KBBGRAPHICSITEMCURSOR_H
0012 #define KBBGRAPHICSITEMCURSOR_H
0013 
0014 
0015 #include "kbbgraphicsitem.h"
0016 class KBBScalableGraphicWidget;
0017 class KBBThemeManager;
0018 
0019 
0020 
0021 /**
0022  * @brief "Cursor" on the scalable graphic widget
0023  *
0024  * The "cursor" is used to play with the keyboard.
0025  */
0026 class KBBGraphicsItemCursor : public KBBGraphicsItem
0027 {
0028     Q_OBJECT
0029 
0030 
0031     public:
0032         /**
0033          * @brief Invalid border and box position
0034          */
0035         static const int NO_POSITION = -1;
0036 
0037 
0038         KBBGraphicsItemCursor(KBBScalableGraphicWidget* parent, KBBThemeManager* themeManager);
0039         
0040         
0041         int borderPosition();
0042         int boxPosition();
0043         
0044         void moveDown();
0045         void moveLeft();
0046         void moveRight();
0047         void moveUp();
0048         
0049         void setBoardSize(const int columns, const int rows);
0050         void setBorderPosition(const int borderPosition);
0051         void setBoxPosition(const int boxPosition);
0052         void updatePositions();
0053 
0054     Q_SIGNALS:
0055         void cursorAtNewPosition(const int borderPosition);
0056 
0057 
0058     private:
0059         
0060         int m_boxPosition;
0061         int m_borderPosition;
0062         int m_columns;
0063         int m_rows;
0064 };
0065 
0066 #endif // KBBGRAPHICSITEMCURSOR_H