src/gui/kernel/qwinnativepangesturerecognizer_win.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
--- a/src/gui/kernel/qwinnativepangesturerecognizer_win.cpp	Tue Jan 26 12:42:25 2010 +0200
+++ b/src/gui/kernel/qwinnativepangesturerecognizer_win.cpp	Tue Feb 02 00:43:10 2010 +0200
@@ -52,20 +52,22 @@
 
 QT_BEGIN_NAMESPACE
 
+#if !defined(QT_NO_NATIVE_GESTURES)
+
 QWinNativePanGestureRecognizer::QWinNativePanGestureRecognizer()
 {
 }
 
-QGesture* QWinNativePanGestureRecognizer::createGesture(QObject *target) const
+QGesture *QWinNativePanGestureRecognizer::create(QObject *target)
 {
     if (!target)
         return new QPanGesture; // a special case
-    if (qobject_cast<QGraphicsObject*>(target))
-        return 0;
     if (!target->isWidgetType())
         return 0;
+    if (qobject_cast<QGraphicsObject *>(target))
+        return 0;
 
-    QWidget *q = static_cast<QWidget*>(target);
+    QWidget *q = static_cast<QWidget *>(target);
     QWidgetPrivate *d = q->d_func();
     d->nativeGesturePanEnabled = true;
     d->winSetupGestures();
@@ -73,7 +75,9 @@
     return new QPanGesture;
 }
 
-QGestureRecognizer::Result QWinNativePanGestureRecognizer::filterEvent(QGesture *state, QObject *, QEvent *event)
+QGestureRecognizer::Result QWinNativePanGestureRecognizer::recognize(QGesture *state,
+                                                                     QObject *,
+                                                                     QEvent *event)
 {
     QPanGesture *q = static_cast<QPanGesture*>(state);
     QPanGesturePrivate *d = q->d_func();
@@ -85,26 +89,25 @@
         case QNativeGestureEvent::GestureBegin:
             break;
         case QNativeGestureEvent::Pan:
-            result = QGestureRecognizer::GestureTriggered;
+            result = QGestureRecognizer::TriggerGesture;
             event->accept();
             break;
         case QNativeGestureEvent::GestureEnd:
             if (q->state() == Qt::NoGesture)
                 return QGestureRecognizer::Ignore; // some other gesture has ended
-            result = QGestureRecognizer::GestureFinished;
+            result = QGestureRecognizer::FinishGesture;
             break;
         default:
             return QGestureRecognizer::Ignore;
         }
         if (q->state() == Qt::NoGesture) {
-            d->lastOffset = d->totalOffset = d->offset = QPointF();
+            d->lastOffset = d->offset = QPointF();
+            d->startPosition = ev->position;
         } else {
             d->lastOffset = d->offset;
-            d->offset = QPointF(ev->position.x() - d->lastPosition.x(),
-                                ev->position.y() - d->lastPosition.y());
-            d->totalOffset += d->offset;
+            d->offset = QPointF(ev->position.x() - d->startPosition.x(),
+                                ev->position.y() - d->startPosition.y());
         }
-        d->lastPosition = ev->position;
     }
     return result;
 }
@@ -114,11 +117,13 @@
     QPanGesture *pan = static_cast<QPanGesture*>(state);
     QPanGesturePrivate *d = pan->d_func();
 
-    d->totalOffset = d->lastOffset = d->offset = QPointF();
-    d->lastPosition = QPoint();
+    d->lastOffset = d->offset = QPointF();
+    d->startPosition = QPoint();
     d->acceleration = 0;
 
     QGestureRecognizer::reset(state);
 }
 
+#endif // QT_NO_NATIVE_GESTURES
+
 QT_END_NAMESPACE