ginebra2/WebTouchNavigation.h
changeset 16 3c88a81ff781
parent 3 0954f5dd2cd0
equal deleted inserted replaced
14:6aeb7a756187 16:3c88a81ff781
    20 */
    20 */
    21 
    21 
    22 #ifndef __WEBTOUCHNAVIGATION_H__
    22 #ifndef __WEBTOUCHNAVIGATION_H__
    23 #define __WEBTOUCHNAVIGATION_H__
    23 #define __WEBTOUCHNAVIGATION_H__
    24 
    24 
    25 #include "qstmgestureevent.h"
    25 
    26 #include "KineticHelper.h"
    26 #define square(x) (x)*(x)
    27 #include <QLineEdit>
    27 
       
    28 #include "ScrollHelper.h"
    28 
    29 
    29 class QGraphicsWebView;
    30 class QGraphicsWebView;
    30 class QWebPage;
    31 class QWebPage;
    31 class QWebFrame;
    32 class QWebFrame;
       
    33 class QStm_Gesture;
    32 
    34 
    33 namespace GVA {
    35 namespace GVA {
    34 
    36 
    35 class WebTouchNavigation;
       
    36 
       
    37 class DecelEdit : public QLineEdit
       
    38 {
       
    39     Q_OBJECT
       
    40 public:
       
    41     DecelEdit(WebTouchNavigation* nav);
       
    42     ~DecelEdit() {};
       
    43 public slots:
       
    44     void setDecel();
       
    45 private:
       
    46     WebTouchNavigation* m_nav;
       
    47 
       
    48 };
       
    49 
    37 
    50 
    38 
    51 
    39 class WebTouchNavigation : public QObject
    52 class WebTouchNavigation : public QObject,
       
    53                            public KineticScrollable
       
    54 {
    40 {
    55     Q_OBJECT
    41     Q_OBJECT
    56 public:
    42 public:
    57     WebTouchNavigation(QGraphicsWebView* view);
    43     WebTouchNavigation(QGraphicsWebView* view);
    58     virtual ~WebTouchNavigation();
    44     virtual ~WebTouchNavigation();
    59     void handleQStmGesture(QStm_Gesture* gesture);
    45     void handleQStmGesture(QStm_Gesture* gesture);
    60 
    46     virtual bool eventFilter(QObject* obj, QEvent* event);
    61     //from KineticScrollable
    47     void setScrollHelper(ScrollHelper* helper) { m_scrollHelper = helper; }
    62     void scrollTo(QPoint& pos);
    48     ScrollHelper*  scrollHelper() { return m_scrollHelper; }
    63     QPoint getScrollPosition();
    49     QPoint scrollPosition();
    64     QPoint getInitialPosition();
    50     void setScrollPosition(QPoint pos);
    65     QPointF getInitialSpeed();
       
    66 
       
    67 private:
    51 private:
    68     void doTap(QStm_Gesture* gesture);
    52     void doTap(QStm_Gesture* gesture);
    69     void doPan(QStm_Gesture* gesture);
    53     void doPan(QStm_Gesture* gesture);
    70     void doFlick(QStm_Gesture* gesture);
    54     void doFlick(QStm_Gesture* gesture);
    71     void doTouch(QStm_Gesture* gesture);
    55     void doTouch(QStm_Gesture* gesture);
    72     void stopScrolling();
    56     void stopScrolling();
    73 
    57 
    74     QPointF mapFromGlobal(const QPointF& gpos);
    58     QPointF mapFromGlobal(const QPointF& gpos);
    75 
    59 
       
    60 signals:
       
    61     void scroll(QPoint& pos);
       
    62     
    76 public slots:
    63 public slots:
    77     void pan();
    64     void pan();
    78 
    65 
    79 private:
    66 private:
    80     QTimer* m_scrollTimer;
    67     QTimer* m_scrollTimer;
    81     QPoint  m_scrollDelta;
    68     QPointF  m_scrollDelta;
    82     bool    m_scrolling;
    69     bool    m_scrolling;
    83     QPointF m_kineticSpeed;
    70     QPointF m_kineticSpeed;
    84     QGraphicsWebView* m_view;
    71     QGraphicsWebView* m_view;
    85     QWebPage*         m_webPage;
    72     QWebPage*         m_webPage;
    86     QWebFrame* m_frame;
    73     QWebFrame* m_frame;
    87     KineticHelper* m_kinetic;
    74     ScrollHelper* m_scrollHelper;
    88     DecelEdit*   m_decelEdit;
       
    89 
       
    90 
       
    91     friend class DecelEdit;
       
    92 };
    75 };
    93 
    76 
    94 }
    77 }
    95 
    78 
    96 
    79