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_ANDROID_MOTION_EVENT_ANDROID_H_ | 5 #ifndef UI_EVENTS_ANDROID_MOTION_EVENT_ANDROID_H_ |
6 #define UI_EVENTS_ANDROID_MOTION_EVENT_ANDROID_H_ | 6 #define UI_EVENTS_ANDROID_MOTION_EVENT_ANDROID_H_ |
7 | 7 |
8 #include <jni.h> | 8 #include <jni.h> |
9 #include <stddef.h> | 9 #include <stddef.h> |
10 #include <stdint.h> | 10 #include <stdint.h> |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 jint action_index, | 61 jint action_index, |
62 jint android_action_button, | 62 jint android_action_button, |
63 jint android_button_state, | 63 jint android_button_state, |
64 jint meta_state, | 64 jint meta_state, |
65 jfloat raw_offset_x_pixels, | 65 jfloat raw_offset_x_pixels, |
66 jfloat raw_offset_y_pixels, | 66 jfloat raw_offset_y_pixels, |
67 const Pointer* const pointer0, | 67 const Pointer* const pointer0, |
68 const Pointer* const pointer1); | 68 const Pointer* const pointer1); |
69 ~MotionEventAndroid() override; | 69 ~MotionEventAndroid() override; |
70 | 70 |
71 std::unique_ptr<MotionEventAndroid> Offset(float x, float y) const; | 71 // Create a new instance from |this| with its cached pointers set |
| 72 // to a given point. |
| 73 std::unique_ptr<MotionEventAndroid> CreateFor(const gfx::PointF& point) const; |
| 74 |
| 75 // Convenience method returning the pointer at index 0. |
| 76 gfx::PointF GetPoint() const { return gfx::PointF(GetX(0), GetY(0)); } |
72 | 77 |
73 // ui::MotionEvent methods. | 78 // ui::MotionEvent methods. |
74 uint32_t GetUniqueEventId() const override; | 79 uint32_t GetUniqueEventId() const override; |
75 Action GetAction() const override; | 80 Action GetAction() const override; |
76 int GetActionIndex() const override; | 81 int GetActionIndex() const override; |
77 size_t GetPointerCount() const override; | 82 size_t GetPointerCount() const override; |
78 int GetPointerId(size_t pointer_index) const override; | 83 int GetPointerId(size_t pointer_index) const override; |
79 float GetX(size_t pointer_index) const override; | 84 float GetX(size_t pointer_index) const override; |
80 float GetY(size_t pointer_index) const override; | 85 float GetY(size_t pointer_index) const override; |
81 float GetRawX(size_t pointer_index) const override; | 86 float GetRawX(size_t pointer_index) const override; |
(...skipping 24 matching lines...) Expand all Loading... |
106 float time_sec() const { return time_sec_; } | 111 float time_sec() const { return time_sec_; } |
107 float GetTickMultiplier() const; | 112 float GetTickMultiplier() const; |
108 | 113 |
109 base::android::ScopedJavaLocalRef<jobject> GetJavaObject() const; | 114 base::android::ScopedJavaLocalRef<jobject> GetJavaObject() const; |
110 | 115 |
111 private: | 116 private: |
112 struct CachedPointer; | 117 struct CachedPointer; |
113 | 118 |
114 float ToDips(float pixels) const; | 119 float ToDips(float pixels) const; |
115 CachedPointer FromAndroidPointer(const Pointer& pointer) const; | 120 CachedPointer FromAndroidPointer(const Pointer& pointer) const; |
116 CachedPointer OffsetCachedPointer(const CachedPointer& pointer, | 121 CachedPointer CreateCachedPointer(const CachedPointer& pointer, |
117 float x, | 122 const gfx::PointF& point) const; |
118 float y) const; | |
119 | 123 |
120 // Cache pointer coords, id's and major lengths for the most common | 124 // Cache pointer coords, id's and major lengths for the most common |
121 // touch-related scenarios, i.e., scrolling and pinching. This prevents | 125 // touch-related scenarios, i.e., scrolling and pinching. This prevents |
122 // redundant JNI fetches for the same bits. | 126 // redundant JNI fetches for the same bits. |
123 enum { MAX_POINTERS_TO_CACHE = 2 }; | 127 enum { MAX_POINTERS_TO_CACHE = 2 }; |
124 | 128 |
125 // The Java reference to the underlying MotionEvent. | 129 // The Java reference to the underlying MotionEvent. |
126 base::android::ScopedJavaGlobalRef<jobject> event_; | 130 base::android::ScopedJavaGlobalRef<jobject> event_; |
127 | 131 |
128 // Used to convert pixel coordinates from the Java-backed MotionEvent to | 132 // Used to convert pixel coordinates from the Java-backed MotionEvent to |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 const uint32_t unique_event_id_; | 164 const uint32_t unique_event_id_; |
161 | 165 |
162 // Disallow copy/assign. | 166 // Disallow copy/assign. |
163 MotionEventAndroid(const MotionEventAndroid& e); // private ctor | 167 MotionEventAndroid(const MotionEventAndroid& e); // private ctor |
164 void operator=(const MotionEventAndroid&) = delete; | 168 void operator=(const MotionEventAndroid&) = delete; |
165 }; | 169 }; |
166 | 170 |
167 } // namespace content | 171 } // namespace content |
168 | 172 |
169 #endif // UI_EVENTS_ANDROID_MOTION_EVENT_ANDROID_H_ | 173 #endif // UI_EVENTS_ANDROID_MOTION_EVENT_ANDROID_H_ |
OLD | NEW |