1 /*******************************************************************
2 *
3 * This file is part of the KDE project "Bovo"
4 *
5 * Bovo is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
8 * any later version.
9 *
10 * Bovo is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with Bovo; see the file COPYING.  If not, write to
17 * the Free Software Foundation, 51 Franklin Street, Fifth Floor,
18 * Boston, MA 02110-1301, USA.
19 *
20 ********************************************************************/
21 
22 #ifndef BOVO_MARK_H
23 #define BOVO_MARK_H
24 
25 #include <QGraphicsSvgItem>
26 
27 #include "common.h"
28 
29 namespace bovo {
30     class Move;
31 }
32 
33 using namespace bovo;
34 
35 class QTimer;
36 
37 namespace gui {
38 
39 class Scene;
40 
41 class Mark : public QGraphicsSvgItem {
42     Q_OBJECT
43 public:
44     Mark(Scene *scene, const Move& move, bool animate = true, qreal fill = 0.75);
45     ~Mark() override;
46     void killAnimation();
47     void kill();
48     usi row() const;
49     usi col() const;
50     void setFill(qreal fill);
51     QRectF boundingRect() const Q_DECL_OVERRIDE;
52 
53 public slots:
54     void tick();
55     void killTick();
56 
57 signals:
58     void killed(Mark* thisMark);
59 
60 protected:
61     void paint(QPainter* painter, const QStyleOptionGraphicsItem*,
62                QWidget* widget=0) Q_DECL_OVERRIDE;
63 
64 private:
65     Scene* m_scene;
66     int m_row;
67     int m_col;
68     qreal m_sizeShrink, m_fill;
69     int m_tick;
70     bool m_animate;
71     qreal m_opacity;
72     QTimer *m_ticker;
73 };
74 
75 } /* namespace gui */
76 
77 #endif // BOVO_MARH_H
78