aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickevents_p_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/items/qquickevents_p_p.h')
-rw-r--r--src/quick/items/qquickevents_p_p.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/quick/items/qquickevents_p_p.h b/src/quick/items/qquickevents_p_p.h
index 91b218875c..3298fcef9c 100644
--- a/src/quick/items/qquickevents_p_p.h
+++ b/src/quick/items/qquickevents_p_p.h
@@ -58,6 +58,7 @@
#include <qdeclarative.h>
#include <QtCore/qobject.h>
+#include <QtGui/qvector2d.h>
#include <QtGui/qevent.h>
QT_BEGIN_NAMESPACE
@@ -137,6 +138,60 @@ private:
bool _accepted;
};
+class QQuickMouseEventEx : public QMouseEvent
+{
+public:
+ QQuickMouseEventEx(Type type, const QPointF &pos, Qt::MouseButton button,
+ Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
+ : QMouseEvent(type,pos,button,buttons,modifiers)
+ {
+ }
+
+ QQuickMouseEventEx(Type type, const QPointF &pos, const QPointF &globalPos,
+ Qt::MouseButton button, Qt::MouseButtons buttons,
+ Qt::KeyboardModifiers modifiers)
+ : QMouseEvent(type,pos,globalPos,button,buttons,modifiers)
+ {
+ }
+
+ QQuickMouseEventEx(Type type, const QPointF &pos, const QPointF &windowPos, const QPointF &globalPos,
+ Qt::MouseButton button, Qt::MouseButtons buttons,
+ Qt::KeyboardModifiers modifiers)
+ : QMouseEvent(type,pos,windowPos,globalPos,button,buttons,modifiers)
+ {
+ }
+
+ QQuickMouseEventEx(const QMouseEvent &event)
+ : QMouseEvent(event)
+ {
+ if (extended(&event))
+ setVelocity(extended(&event)->velocity());
+ }
+
+ static const QQuickMouseEventEx *extended(const QMouseEvent *e) {
+ const QQuickMouseEventEx *ex = static_cast<const QQuickMouseEventEx*>(e);
+ return reinterpret_cast<const QMouseEvent*>(ex->d) == e ? ex : 0;
+ }
+ static QQuickMouseEventEx *extended(QMouseEvent *e) {
+ QQuickMouseEventEx *ex = static_cast<QQuickMouseEventEx*>(e);
+ return reinterpret_cast<QMouseEvent*>(ex->d) == e ? ex : 0;
+ }
+
+ void setExtended() {
+ d = reinterpret_cast<QEventPrivate*>(this);
+ }
+
+ void setVelocity(const QVector2D &v) {
+ setExtended();
+ _velocity = v;
+ }
+ QVector2D velocity() const { return _velocity; }
+
+private:
+ QVector2D _velocity;
+};
+
+
QT_END_NAMESPACE
QML_DECLARE_TYPE(QQuickKeyEvent)