1//
2// KBlackBox
3//
4// A simple game inspired by an emacs module
5//
6/***************************************************************************
7 * Copyright (c) 2007, Nicolas Roffet *
8 * nicolas-kde@roffet.com *
9 * *
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 * This program is distributed in the hope that it will be useful, *
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
19 * GNU General Public License for more details. *
20 * *
21 * You should have received a copy of the GNU General Public License *
22 * along with this program; if not, write to the *
23 * Free Software Foundation, Inc., *
24 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA *
25 ***************************************************************************/
26
27
28
29#ifndef KBBGRAPHICSITEMCURSOR_H
30#define KBBGRAPHICSITEMCURSOR_H
31
32
33#include "kbbgraphicsitem.h"
34class KBBScalableGraphicWidget;
35class KBBThemeManager;
36
37
38
39/**
40 * @brief "Cursor" on the scalable graphic widget
41 *
42 * The "cursor" is used to play with the keyboard.
43 */
44class KBBGraphicsItemCursor : public KBBGraphicsItem
45{
46 Q_OBJECT
47
48
49 public:
50 /**
51 * @brief Invalid border and box position
52 */
53 static const int NO_POSITION = -1;
54
55
56 KBBGraphicsItemCursor(KBBScalableGraphicWidget* parent, KBBThemeManager* themeManager);
57
58
59 int borderPosition();
60 int boxPosition();
61
62 void moveDown();
63 void moveLeft();
64 void moveRight();
65 void moveUp();
66
67 void setBoardSize(const int columns, const int rows);
68 void setBorderPosition(const int borderPosition);
69 void setBoxPosition(const int boxPosition);
70
71
72 signals:
73 void cursorAtNewPosition(const int borderPosition);
74
75
76 private:
77 void updatePositions();
78
79 int m_boxPosition;
80 int m_borderPosition;
81 int m_columns;
82 int m_rows;
83};
84
85#endif // KBBGRAPHICSITEMCURSOR_H
86