| 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 "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
| 10 #include "ui/events/gesture_detection/gesture_detection_export.h" | 10 #include "ui/events/gesture_detection/gesture_detection_export.h" |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 BUTTON_BACK = 1 << 3, | 39 BUTTON_BACK = 1 << 3, |
| 40 BUTTON_FORWARD = 1 << 4, | 40 BUTTON_FORWARD = 1 << 4, |
| 41 }; | 41 }; |
| 42 | 42 |
| 43 // The implementer promises that |GetPointerId()| will never exceed | 43 // The implementer promises that |GetPointerId()| will never exceed |
| 44 // MAX_POINTER_ID. | 44 // MAX_POINTER_ID. |
| 45 enum { MAX_POINTER_ID = 31, MAX_TOUCH_POINT_COUNT = 16 }; | 45 enum { MAX_POINTER_ID = 31, MAX_TOUCH_POINT_COUNT = 16 }; |
| 46 | 46 |
| 47 virtual ~MotionEvent() {} | 47 virtual ~MotionEvent() {} |
| 48 | 48 |
| 49 virtual int GetId() const = 0; | 49 // An unique identifier this motion event. |
| 50 virtual uint32 GetUniqueEventId() const = 0; |
| 50 virtual Action GetAction() const = 0; | 51 virtual Action GetAction() const = 0; |
| 51 // Only valid if |GetAction()| returns ACTION_POINTER_UP or | 52 // Only valid if |GetAction()| returns ACTION_POINTER_UP or |
| 52 // ACTION_POINTER_DOWN. | 53 // ACTION_POINTER_DOWN. |
| 53 virtual int GetActionIndex() const = 0; | 54 virtual int GetActionIndex() const = 0; |
| 54 virtual size_t GetPointerCount() const = 0; | 55 virtual size_t GetPointerCount() const = 0; |
| 55 virtual int GetPointerId(size_t pointer_index) const = 0; | 56 virtual int GetPointerId(size_t pointer_index) const = 0; |
| 56 virtual float GetX(size_t pointer_index) const = 0; | 57 virtual float GetX(size_t pointer_index) const = 0; |
| 57 virtual float GetY(size_t pointer_index) const = 0; | 58 virtual float GetY(size_t pointer_index) const = 0; |
| 58 virtual float GetRawX(size_t pointer_index) const = 0; | 59 virtual float GetRawX(size_t pointer_index) const = 0; |
| 59 virtual float GetRawY(size_t pointer_index) const = 0; | 60 virtual float GetRawY(size_t pointer_index) const = 0; |
| 60 virtual float GetTouchMajor(size_t pointer_index) const = 0; | 61 virtual float GetTouchMajor(size_t pointer_index) const = 0; |
| 61 virtual float GetTouchMinor(size_t pointer_index) const = 0; | 62 virtual float GetTouchMinor(size_t pointer_index) const = 0; |
| 62 virtual float GetOrientation(size_t pointer_index) const = 0; | 63 virtual float GetOrientation(size_t pointer_index) const = 0; |
| 63 virtual float GetPressure(size_t pointer_index) const = 0; | 64 virtual float GetPressure(size_t pointer_index) const = 0; |
| 64 virtual ToolType GetToolType(size_t pointer_index) const = 0; | 65 virtual ToolType GetToolType(size_t pointer_index) const = 0; |
| 65 virtual int GetButtonState() const = 0; | 66 virtual int GetButtonState() const = 0; |
| 66 virtual int GetFlags() const = 0; | 67 virtual int GetFlags() const = 0; |
| 67 virtual base::TimeTicks GetEventTime() const = 0; | 68 virtual base::TimeTicks GetEventTime() const = 0; |
| 68 | 69 |
| 69 // Optional historical data, default implementation provides an empty history. | 70 // Optional historical data, default implementation provides an empty history. |
| 70 virtual size_t GetHistorySize() const; | 71 virtual size_t GetHistorySize() const; |
| 71 virtual base::TimeTicks GetHistoricalEventTime(size_t historical_index) const; | 72 virtual base::TimeTicks GetHistoricalEventTime(size_t historical_index) const; |
| 72 virtual float GetHistoricalTouchMajor(size_t pointer_index, | 73 virtual float GetHistoricalTouchMajor(size_t pointer_index, |
| 73 size_t historical_index) const; | 74 size_t historical_index) const; |
| 74 virtual float GetHistoricalX(size_t pointer_index, | 75 virtual float GetHistoricalX(size_t pointer_index, |
| 75 size_t historical_index) const; | 76 size_t historical_index) const; |
| 76 virtual float GetHistoricalY(size_t pointer_index, | 77 virtual float GetHistoricalY(size_t pointer_index, |
| 77 size_t historical_index) const; | 78 size_t historical_index) const; |
| 78 | 79 |
| 79 virtual scoped_ptr<MotionEvent> Clone() const = 0; | 80 // Get the id of the device which created the event. Currently Aura only. |
| 80 virtual scoped_ptr<MotionEvent> Cancel() const = 0; | 81 virtual int GetSourceDeviceId(size_t pointer_index) const; |
| 81 | 82 |
| 83 // Utility accessor methods for convenience. |
| 84 int GetPointerId() const { return GetPointerId(0); } |
| 82 float GetX() const { return GetX(0); } | 85 float GetX() const { return GetX(0); } |
| 83 float GetY() const { return GetY(0); } | 86 float GetY() const { return GetY(0); } |
| 84 float GetRawX() const { return GetRawX(0); } | 87 float GetRawX() const { return GetRawX(0); } |
| 85 float GetRawY() const { return GetRawY(0); } | 88 float GetRawY() const { return GetRawY(0); } |
| 86 float GetRawOffsetX() const { return GetRawX() - GetX(); } | 89 float GetRawOffsetX() const { return GetRawX() - GetX(); } |
| 87 float GetRawOffsetY() const { return GetRawY() - GetY(); } | 90 float GetRawOffsetY() const { return GetRawY() - GetY(); } |
| 88 | 91 |
| 89 float GetTouchMajor() const { return GetTouchMajor(0); } | 92 float GetTouchMajor() const { return GetTouchMajor(0); } |
| 90 float GetTouchMinor() const { return GetTouchMinor(0); } | 93 float GetTouchMinor() const { return GetTouchMinor(0); } |
| 91 | 94 |
| 92 // Returns the orientation of the major axis clockwise from vertical, in | 95 // Returns the orientation in radians. The meaning is overloaded: |
| 93 // radians. The return value lies in [-PI/2, PI/2]. | 96 // * For a touch screen or pad, it's the orientation of the major axis |
| 97 // clockwise from vertical. The return value lies in [-PI/2, PI/2]. |
| 98 // * For a stylus, it indicates the direction in which the stylus is pointing. |
| 99 // The return value lies in [-PI, PI]. |
| 94 float GetOrientation() const { return GetOrientation(0); } | 100 float GetOrientation() const { return GetOrientation(0); } |
| 95 | 101 |
| 96 float GetPressure() const { return GetPressure(0); } | 102 float GetPressure() const { return GetPressure(0); } |
| 97 ToolType GetToolType() const { return GetToolType(0); } | 103 ToolType GetToolType() const { return GetToolType(0); } |
| 98 | 104 |
| 99 // O(N) search of pointers (use sparingly!). Returns -1 if |id| nonexistent. | 105 // O(N) search of pointers (use sparingly!). Returns -1 if |id| nonexistent. |
| 100 int FindPointerIndexOfId(int id) const; | 106 int FindPointerIndexOfId(int id) const; |
| 107 |
| 108 // Note that these methods perform shallow copies of the originating events. |
| 109 // They guarantee only that the returned type will reflect the same |
| 110 // data exposed by the MotionEvent interface; no guarantees are made that the |
| 111 // underlying implementation is identical to the source implementation. |
| 112 scoped_ptr<MotionEvent> Clone() const; |
| 113 scoped_ptr<MotionEvent> Cancel() const; |
| 101 }; | 114 }; |
| 102 | 115 |
| 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 | 116 } // namespace ui |
| 109 | 117 |
| 110 #endif // UI_EVENTS_GESTURE_DETECTION_MOTION_EVENT_H_ | 118 #endif // UI_EVENTS_GESTURE_DETECTION_MOTION_EVENT_H_ |
| OLD | NEW |