SVN_SILENT made messages (.desktop file)
[kdegames.git] / kblackbox / kbbgraphicsitemonbox.h
blob92234b532ea784d1b1dc66b5a2e58e49701dbd52
1 //
2 // KBlackBox
3 //
4 // A simple game inspired by an emacs module
5 //
6 /***************************************************************************
7 * Copyright (c) 1999-2000, Robert Cimrman *
8 * cimrman3@students.zcu.cz *
9 * *
10 * Copyright (c) 2007, Nicolas Roffet *
11 * nicolas-kde@roffet.com *
12 * *
13 * *
14 * This program is free software; you can redistribute it and/or modify *
15 * it under the terms of the GNU General Public License as published by *
16 * the Free Software Foundation; either version 2 of the License, or *
17 * (at your option) any later version. *
18 * *
19 * This program is distributed in the hope that it will be useful, *
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
22 * GNU General Public License for more details. *
23 * *
24 * You should have received a copy of the GNU General Public License *
25 * along with this program; if not, write to the *
26 * Free Software Foundation, Inc., *
27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA *
28 ***************************************************************************/
30 #ifndef KBBGRAPHICSITEMONBOX_H
31 #define KBBGRAPHICSITEMONBOX_H
35 class QGraphicsScene;
38 #include "kbbgraphicsitem.h"
39 #include "kbbitemwithposition.h"
40 class KBBScalableGraphicWidget;
41 class KBBThemeManager;
45 /**
46 * @brief Item on the box on the scalable graphic widget
48 * The item is general and can be a ball or other markers.
50 class KBBGraphicsItemOnBox : public KBBGraphicsItem, public KBBItemWithPosition
52 public:
53 /**
54 * @brief Invalid box position
56 static const int NO_POSITION = -1;
59 KBBGraphicsItemOnBox(KBBScalableGraphicWidget::itemType itemType, KBBScalableGraphicWidget* parent, KBBThemeManager* themeManager, const int boxPosition, const int columns, const int rows);
61 int position();
64 protected:
65 virtual void removeInteractionInfos();
67 KBBScalableGraphicWidget* m_widget;
68 int m_columns;
69 int m_rows;
72 private:
73 int boxPosition(qreal x, qreal y);
74 bool isMovable();
75 void mousePressEvent (QGraphicsSceneMouseEvent* event);
76 void mouseReleaseEvent (QGraphicsSceneMouseEvent* event);
77 void setBoxPosition(int boxPosition);
79 int m_boxPosition;
80 int m_boxOutsidePosition;
81 qreal m_dragXPos;
82 qreal m_dragYPos;
83 qreal m_dragX;
84 qreal m_dragY;
85 KBBScalableGraphicWidget::itemType m_itemType;
88 #endif // KBBGRAPHICSITEMONBOX_H