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 |