1 /* This file is part of the KDE project
2  * Copyright (C) 2012 Arjen Hiemstra <ahiemstra@heimr.nl>
3  *
4  *  This program is free software; you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation; either version 2 of the License, or
7  *  (at your option) any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program; if not, write to the Free Software
16  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  */
18 
19 #ifndef MOUSETRACKER_H
20 #define MOUSETRACKER_H
21 
22 #include <QObject>
23 #include <QPointF>
24 
25 class QQuickItem;
26 
27 /**
28  * Helper class for tracking global mouse position from within QML.
29  */
30 class MouseTracker : public QObject
31 {
32     Q_OBJECT
33 public:
34     explicit MouseTracker(QObject* parent = 0);
35     virtual ~MouseTracker();
36 
37 public Q_SLOTS:
38     void addItem(QQuickItem* item, const QPointF& offset = QPointF());
39     void removeItem(QQuickItem* item);
40 
41 protected:
42     virtual bool eventFilter(QObject* target, QEvent* event);
43 
44 private:
45 private:
46     class Private;
47     Private* const d;
48 };
49 
50 #endif // MOUSETRACKER_H
51