ginebra2/WebTouchNavigation.h
changeset 0 1450b09d0cfd
child 3 0954f5dd2cd0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ginebra2/WebTouchNavigation.h	Tue May 04 12:39:35 2010 +0300
@@ -0,0 +1,95 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+#ifndef __WEBTOUCHNAVIGATION_H__
+#define __WEBTOUCHNAVIGATION_H__
+
+#include "qstmgestureevent.h"
+#include "KineticHelper.h"
+#include <QLineEdit>
+
+class QGraphicsWebView;
+class QWebPage;
+class QWebFrame;
+
+namespace GVA {
+
+class WebTouchNavigation;
+
+class DecelEdit : public QLineEdit
+{
+    Q_OBJECT
+public:
+    DecelEdit(WebTouchNavigation* nav);
+    ~DecelEdit() {};
+public slots:
+    void setDecel();
+private:    
+    WebTouchNavigation* m_nav;
+    
+};
+
+
+
+class WebTouchNavigation : public QObject, 
+                           public KineticScrollable
+{
+    Q_OBJECT
+public:
+    WebTouchNavigation(QGraphicsWebView* view);
+    virtual ~WebTouchNavigation();
+    void handleQStmGesture(QStm_Gesture* gesture);
+    
+    //from KineticScrollable
+    void scrollTo(QPoint& pos);    
+    QPoint getScrollPosition();
+    QPoint getInitialPosition();
+    QPointF getInitialSpeed();
+    
+private:
+    void doTap(QStm_Gesture* gesture);
+    void doPan(QStm_Gesture* gesture);
+    void doFlick(QStm_Gesture* gesture);
+    void doTouch(QStm_Gesture* gesture);
+    void stopScrolling();
+    
+    QPointF mapFromGlobal(const QPointF& gpos);
+    
+public slots:
+    void pan();    
+
+private:    
+    QTimer* m_scrollTimer;
+	QPoint  m_scrollDelta;
+	bool    m_scrolling;
+    QPointF m_kineticSpeed;
+    QGraphicsWebView* m_view;
+    QWebPage*         m_webPage;
+    QWebFrame* m_frame;
+    KineticHelper* m_kinetic;
+    DecelEdit*   m_decelEdit;
+    
+    
+    friend class DecelEdit;
+};
+
+}
+
+
+#endif //__WEBTOUCHNAVIGATION_H__
+