OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "content/common/input/synthetic_web_input_event_builders.h" | 5 #include "content/common/input/synthetic_web_input_event_builders.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "content/common/input/web_touch_event_traits.h" | 8 #include "content/common/input/web_touch_event_traits.h" |
9 #include "ui/events/keycodes/keyboard_codes.h" | 9 #include "ui/events/keycodes/keyboard_codes.h" |
10 | 10 |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 | 170 |
171 int SyntheticWebTouchEvent::PressPoint(float x, float y) { | 171 int SyntheticWebTouchEvent::PressPoint(float x, float y) { |
172 if (touchesLength == touchesLengthCap) | 172 if (touchesLength == touchesLengthCap) |
173 return -1; | 173 return -1; |
174 WebTouchPoint& point = touches[touchesLength]; | 174 WebTouchPoint& point = touches[touchesLength]; |
175 point.id = touchesLength; | 175 point.id = touchesLength; |
176 point.position.x = point.screenPosition.x = x; | 176 point.position.x = point.screenPosition.x = x; |
177 point.position.y = point.screenPosition.y = y; | 177 point.position.y = point.screenPosition.y = y; |
178 point.state = WebTouchPoint::StatePressed; | 178 point.state = WebTouchPoint::StatePressed; |
179 point.radiusX = point.radiusY = 1.f; | 179 point.radiusX = point.radiusY = 1.f; |
| 180 // Lets give some default values for testing. |
| 181 point.rotationAngle = 1.f; |
| 182 point.force = 1.f; |
| 183 |
180 ++touchesLength; | 184 ++touchesLength; |
181 WebTouchEventTraits::ResetType( | 185 WebTouchEventTraits::ResetType( |
182 WebInputEvent::TouchStart, timeStampSeconds, this); | 186 WebInputEvent::TouchStart, timeStampSeconds, this); |
183 return point.id; | 187 return point.id; |
184 } | 188 } |
185 | 189 |
186 void SyntheticWebTouchEvent::MovePoint(int index, float x, float y) { | 190 void SyntheticWebTouchEvent::MovePoint(int index, float x, float y) { |
187 CHECK_GE(index, 0); | 191 CHECK_GE(index, 0); |
188 CHECK_LT(index, touchesLengthCap); | 192 CHECK_LT(index, touchesLengthCap); |
189 // Always set this bit to avoid otherwise unexpected touchmove suppression. | 193 // Always set this bit to avoid otherwise unexpected touchmove suppression. |
190 // The caller can opt-out explicitly, if necessary. | 194 // The caller can opt-out explicitly, if necessary. |
191 causesScrollingIfUncanceled = true; | 195 causesScrollingIfUncanceled = true; |
192 WebTouchPoint& point = touches[index]; | 196 WebTouchPoint& point = touches[index]; |
193 point.position.x = point.screenPosition.x = x; | 197 point.position.x = point.screenPosition.x = x; |
194 point.position.y = point.screenPosition.y = y; | 198 point.position.y = point.screenPosition.y = y; |
195 touches[index].state = WebTouchPoint::StateMoved; | 199 touches[index].state = WebTouchPoint::StateMoved; |
196 WebTouchEventTraits::ResetType( | 200 WebTouchEventTraits::ResetType( |
197 WebInputEvent::TouchMove, timeStampSeconds, this); | 201 WebInputEvent::TouchMove, timeStampSeconds, this); |
198 } | 202 } |
199 | 203 |
| 204 void SyntheticWebTouchEvent::ChangePointRadius( |
| 205 int index, |
| 206 float radiusX, |
| 207 float radiusY) { |
| 208 CHECK_GE(index, 0); |
| 209 CHECK_LT(index, touchesLengthCap); |
| 210 // Set this bit as in MovePoint(). |
| 211 causesScrollingIfUncanceled = true; |
| 212 WebTouchPoint& point = touches[index]; |
| 213 point.radiusX = radiusX; |
| 214 point.radiusY = radiusY; |
| 215 touches[index].state = WebTouchPoint::StateMoved; |
| 216 WebTouchEventTraits::ResetType( |
| 217 WebInputEvent::TouchMove, timeStampSeconds, this); |
| 218 } |
| 219 |
| 220 void SyntheticWebTouchEvent::ChangePointRotationAngleAndForce( |
| 221 int index, |
| 222 float rotationAngle, |
| 223 float force) { |
| 224 CHECK_GE(index, 0); |
| 225 CHECK_LT(index, touchesLengthCap); |
| 226 // Set this bit as in MovePoint(). |
| 227 causesScrollingIfUncanceled = true; |
| 228 WebTouchPoint& point = touches[index]; |
| 229 point.rotationAngle = rotationAngle; |
| 230 point.force = force; |
| 231 touches[index].state = WebTouchPoint::StateMoved; |
| 232 WebTouchEventTraits::ResetType( |
| 233 WebInputEvent::TouchMove, timeStampSeconds, this); |
| 234 } |
| 235 |
200 void SyntheticWebTouchEvent::ReleasePoint(int index) { | 236 void SyntheticWebTouchEvent::ReleasePoint(int index) { |
201 CHECK_GE(index, 0); | 237 CHECK_GE(index, 0); |
202 CHECK_LT(index, touchesLengthCap); | 238 CHECK_LT(index, touchesLengthCap); |
203 touches[index].state = WebTouchPoint::StateReleased; | 239 touches[index].state = WebTouchPoint::StateReleased; |
204 WebTouchEventTraits::ResetType( | 240 WebTouchEventTraits::ResetType( |
205 WebInputEvent::TouchEnd, timeStampSeconds, this); | 241 WebInputEvent::TouchEnd, timeStampSeconds, this); |
206 } | 242 } |
207 | 243 |
208 void SyntheticWebTouchEvent::CancelPoint(int index) { | 244 void SyntheticWebTouchEvent::CancelPoint(int index) { |
209 CHECK_GE(index, 0); | 245 CHECK_GE(index, 0); |
210 CHECK_LT(index, touchesLengthCap); | 246 CHECK_LT(index, touchesLengthCap); |
211 touches[index].state = WebTouchPoint::StateCancelled; | 247 touches[index].state = WebTouchPoint::StateCancelled; |
212 WebTouchEventTraits::ResetType( | 248 WebTouchEventTraits::ResetType( |
213 WebInputEvent::TouchCancel, timeStampSeconds, this); | 249 WebInputEvent::TouchCancel, timeStampSeconds, this); |
214 } | 250 } |
215 | 251 |
216 void SyntheticWebTouchEvent::SetTimestamp(base::TimeDelta timestamp) { | 252 void SyntheticWebTouchEvent::SetTimestamp(base::TimeDelta timestamp) { |
217 timeStampSeconds = timestamp.InSecondsF(); | 253 timeStampSeconds = timestamp.InSecondsF(); |
218 } | 254 } |
219 | 255 |
220 } // namespace content | 256 } // namespace content |
OLD | NEW |