OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef UI_EVENTS_GESTURE_DETECTION_MOTION_EVENT_H_ | 5 #ifndef UI_EVENTS_GESTURE_DETECTION_MOTION_EVENT_H_ |
6 #define UI_EVENTS_GESTURE_DETECTION_MOTION_EVENT_H_ | 6 #define UI_EVENTS_GESTURE_DETECTION_MOTION_EVENT_H_ |
7 | 7 |
| 8 #include <string> |
| 9 |
8 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
9 #include "base/time/time.h" | 11 #include "base/time/time.h" |
10 #include "ui/events/gesture_detection/gesture_detection_export.h" | 12 #include "ui/events/gesture_detection/gesture_detection_export.h" |
11 | 13 |
12 namespace ui { | 14 namespace ui { |
13 | 15 |
14 // Abstract class for a generic motion-related event, patterned after that | 16 // Abstract class for a generic motion-related event, patterned after that |
15 // subset of Android's MotionEvent API used in gesture detection. | 17 // subset of Android's MotionEvent API used in gesture detection. |
16 class GESTURE_DETECTION_EXPORT MotionEvent { | 18 class GESTURE_DETECTION_EXPORT MotionEvent { |
17 public: | 19 public: |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 // Optional historical data, default implementation provides an empty history. | 71 // Optional historical data, default implementation provides an empty history. |
70 virtual size_t GetHistorySize() const; | 72 virtual size_t GetHistorySize() const; |
71 virtual base::TimeTicks GetHistoricalEventTime(size_t historical_index) const; | 73 virtual base::TimeTicks GetHistoricalEventTime(size_t historical_index) const; |
72 virtual float GetHistoricalTouchMajor(size_t pointer_index, | 74 virtual float GetHistoricalTouchMajor(size_t pointer_index, |
73 size_t historical_index) const; | 75 size_t historical_index) const; |
74 virtual float GetHistoricalX(size_t pointer_index, | 76 virtual float GetHistoricalX(size_t pointer_index, |
75 size_t historical_index) const; | 77 size_t historical_index) const; |
76 virtual float GetHistoricalY(size_t pointer_index, | 78 virtual float GetHistoricalY(size_t pointer_index, |
77 size_t historical_index) const; | 79 size_t historical_index) const; |
78 | 80 |
79 virtual scoped_ptr<MotionEvent> Clone() const = 0; | 81 // Utility accessor methods for convenience. |
80 virtual scoped_ptr<MotionEvent> Cancel() const = 0; | |
81 | |
82 float GetX() const { return GetX(0); } | 82 float GetX() const { return GetX(0); } |
83 float GetY() const { return GetY(0); } | 83 float GetY() const { return GetY(0); } |
84 float GetRawX() const { return GetRawX(0); } | 84 float GetRawX() const { return GetRawX(0); } |
85 float GetRawY() const { return GetRawY(0); } | 85 float GetRawY() const { return GetRawY(0); } |
86 float GetRawOffsetX() const { return GetRawX() - GetX(); } | 86 float GetRawOffsetX() const { return GetRawX() - GetX(); } |
87 float GetRawOffsetY() const { return GetRawY() - GetY(); } | 87 float GetRawOffsetY() const { return GetRawY() - GetY(); } |
88 | 88 |
89 float GetTouchMajor() const { return GetTouchMajor(0); } | 89 float GetTouchMajor() const { return GetTouchMajor(0); } |
90 float GetTouchMinor() const { return GetTouchMinor(0); } | 90 float GetTouchMinor() const { return GetTouchMinor(0); } |
91 | 91 |
92 // Returns the orientation of the major axis clockwise from vertical, in | 92 // Returns the orientation of the major axis clockwise from vertical, in |
93 // radians. The return value lies in [-PI/2, PI/2]. | 93 // radians. The return value lies in [-PI/2, PI/2]. |
94 float GetOrientation() const { return GetOrientation(0); } | 94 float GetOrientation() const { return GetOrientation(0); } |
95 | 95 |
96 float GetPressure() const { return GetPressure(0); } | 96 float GetPressure() const { return GetPressure(0); } |
97 ToolType GetToolType() const { return GetToolType(0); } | 97 ToolType GetToolType() const { return GetToolType(0); } |
98 | 98 |
99 // O(N) search of pointers (use sparingly!). Returns -1 if |id| nonexistent. | 99 // O(N) search of pointers (use sparingly!). Returns -1 if |id| nonexistent. |
100 int FindPointerIndexOfId(int id) const; | 100 int FindPointerIndexOfId(int id) const; |
| 101 |
| 102 // Note that these methods perform shallow copies of the originating events. |
| 103 // They guarantee only that the returned type will reflect the same |
| 104 // data exposed by the MotionEvent interface; no guarantees are made that the |
| 105 // underlying implementation is identical to the source implementation. |
| 106 scoped_ptr<MotionEvent> Clone() const; |
| 107 scoped_ptr<MotionEvent> Cancel() const; |
| 108 |
| 109 // Note: This routine is not at all optimized and should not be used outside |
| 110 // of testing in any production code. |
| 111 std::string ToString() const; |
101 }; | 112 }; |
102 | 113 |
103 GESTURE_DETECTION_EXPORT bool operator==(const MotionEvent& lhs, | |
104 const MotionEvent& rhs); | |
105 GESTURE_DETECTION_EXPORT bool operator!=(const MotionEvent& lhs, | |
106 const MotionEvent& rhs); | |
107 | |
108 } // namespace ui | 114 } // namespace ui |
109 | 115 |
110 #endif // UI_EVENTS_GESTURE_DETECTION_MOTION_EVENT_H_ | 116 #endif // UI_EVENTS_GESTURE_DETECTION_MOTION_EVENT_H_ |
OLD | NEW |