OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/events/event.h" | 5 #include "ui/events/event.h" |
6 | 6 |
7 #if defined(USE_X11) | 7 #if defined(USE_X11) |
8 #include <X11/extensions/XInput2.h> | 8 #include <X11/extensions/XInput2.h> |
9 #include <X11/Xlib.h> | 9 #include <X11/Xlib.h> |
10 #endif | 10 #endif |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 // CancelModeEvent | 229 // CancelModeEvent |
230 | 230 |
231 CancelModeEvent::CancelModeEvent() | 231 CancelModeEvent::CancelModeEvent() |
232 : Event(ET_CANCEL_MODE, base::TimeDelta(), 0) { | 232 : Event(ET_CANCEL_MODE, base::TimeDelta(), 0) { |
233 set_cancelable(false); | 233 set_cancelable(false); |
234 } | 234 } |
235 | 235 |
236 CancelModeEvent::~CancelModeEvent() { | 236 CancelModeEvent::~CancelModeEvent() { |
237 } | 237 } |
238 | 238 |
| 239 scoped_ptr<Event> CancelModeEvent::Clone() const { |
| 240 return scoped_ptr<Event>(new CancelModeEvent(*this)); |
| 241 } |
| 242 |
239 //////////////////////////////////////////////////////////////////////////////// | 243 //////////////////////////////////////////////////////////////////////////////// |
240 // LocatedEvent | 244 // LocatedEvent |
241 | 245 |
242 LocatedEvent::~LocatedEvent() { | 246 LocatedEvent::~LocatedEvent() { |
243 } | 247 } |
244 | 248 |
245 LocatedEvent::LocatedEvent(const base::NativeEvent& native_event) | 249 LocatedEvent::LocatedEvent(const base::NativeEvent& native_event) |
246 : Event(native_event, | 250 : Event(native_event, |
247 EventTypeFromNative(native_event), | 251 EventTypeFromNative(native_event), |
248 EventFlagsFromNative(native_event)), | 252 EventFlagsFromNative(native_event)), |
(...skipping 13 matching lines...) Expand all Loading... |
262 | 266 |
263 void LocatedEvent::UpdateForRootTransform( | 267 void LocatedEvent::UpdateForRootTransform( |
264 const gfx::Transform& reversed_root_transform) { | 268 const gfx::Transform& reversed_root_transform) { |
265 // Transform has to be done at root level. | 269 // Transform has to be done at root level. |
266 gfx::Point3F p(location_); | 270 gfx::Point3F p(location_); |
267 reversed_root_transform.TransformPoint(&p); | 271 reversed_root_transform.TransformPoint(&p); |
268 location_ = p.AsPointF(); | 272 location_ = p.AsPointF(); |
269 root_location_ = location_; | 273 root_location_ = location_; |
270 } | 274 } |
271 | 275 |
| 276 scoped_ptr<Event> LocatedEvent::Clone() const { |
| 277 return scoped_ptr<Event>(new LocatedEvent(*this)); |
| 278 } |
| 279 |
272 //////////////////////////////////////////////////////////////////////////////// | 280 //////////////////////////////////////////////////////////////////////////////// |
273 // MouseEvent | 281 // MouseEvent |
274 | 282 |
275 MouseEvent::MouseEvent(const base::NativeEvent& native_event) | 283 MouseEvent::MouseEvent(const base::NativeEvent& native_event) |
276 : LocatedEvent(native_event), | 284 : LocatedEvent(native_event), |
277 changed_button_flags_( | 285 changed_button_flags_( |
278 GetChangedMouseButtonFlagsFromNative(native_event)) { | 286 GetChangedMouseButtonFlagsFromNative(native_event)) { |
279 if (type() == ET_MOUSE_PRESSED || type() == ET_MOUSE_RELEASED) | 287 if (type() == ET_MOUSE_PRESSED || type() == ET_MOUSE_RELEASED) |
280 SetClickCount(GetRepeatCount(*this)); | 288 SetClickCount(GetRepeatCount(*this)); |
281 } | 289 } |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 f &= ~EF_IS_TRIPLE_CLICK; | 406 f &= ~EF_IS_TRIPLE_CLICK; |
399 break; | 407 break; |
400 case 3: | 408 case 3: |
401 f &= ~EF_IS_DOUBLE_CLICK; | 409 f &= ~EF_IS_DOUBLE_CLICK; |
402 f |= EF_IS_TRIPLE_CLICK; | 410 f |= EF_IS_TRIPLE_CLICK; |
403 break; | 411 break; |
404 } | 412 } |
405 set_flags(f); | 413 set_flags(f); |
406 } | 414 } |
407 | 415 |
| 416 scoped_ptr<Event> MouseEvent::Clone() const { |
| 417 return scoped_ptr<Event>(new MouseEvent(*this)); |
| 418 } |
| 419 |
408 //////////////////////////////////////////////////////////////////////////////// | 420 //////////////////////////////////////////////////////////////////////////////// |
409 // MouseWheelEvent | 421 // MouseWheelEvent |
410 | 422 |
411 MouseWheelEvent::MouseWheelEvent(const base::NativeEvent& native_event) | 423 MouseWheelEvent::MouseWheelEvent(const base::NativeEvent& native_event) |
412 : MouseEvent(native_event), | 424 : MouseEvent(native_event), |
413 offset_(GetMouseWheelOffset(native_event)) { | 425 offset_(GetMouseWheelOffset(native_event)) { |
414 } | 426 } |
415 | 427 |
416 MouseWheelEvent::MouseWheelEvent(const ScrollEvent& scroll_event) | 428 MouseWheelEvent::MouseWheelEvent(const ScrollEvent& scroll_event) |
417 : MouseEvent(scroll_event), | 429 : MouseEvent(scroll_event), |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
456 LocatedEvent::UpdateForRootTransform(inverted_root_transform); | 468 LocatedEvent::UpdateForRootTransform(inverted_root_transform); |
457 gfx::DecomposedTransform decomp; | 469 gfx::DecomposedTransform decomp; |
458 bool success = gfx::DecomposeTransform(&decomp, inverted_root_transform); | 470 bool success = gfx::DecomposeTransform(&decomp, inverted_root_transform); |
459 DCHECK(success); | 471 DCHECK(success); |
460 if (decomp.scale[0]) | 472 if (decomp.scale[0]) |
461 offset_.set_x(offset_.x() * decomp.scale[0]); | 473 offset_.set_x(offset_.x() * decomp.scale[0]); |
462 if (decomp.scale[1]) | 474 if (decomp.scale[1]) |
463 offset_.set_y(offset_.y() * decomp.scale[1]); | 475 offset_.set_y(offset_.y() * decomp.scale[1]); |
464 } | 476 } |
465 | 477 |
| 478 scoped_ptr<Event> MouseWheelEvent::Clone() const { |
| 479 return scoped_ptr<Event>(new MouseWheelEvent(*this)); |
| 480 } |
| 481 |
466 //////////////////////////////////////////////////////////////////////////////// | 482 //////////////////////////////////////////////////////////////////////////////// |
467 // TouchEvent | 483 // TouchEvent |
468 | 484 |
469 TouchEvent::TouchEvent(const base::NativeEvent& native_event) | 485 TouchEvent::TouchEvent(const base::NativeEvent& native_event) |
470 : LocatedEvent(native_event), | 486 : LocatedEvent(native_event), |
471 touch_id_(GetTouchId(native_event)), | 487 touch_id_(GetTouchId(native_event)), |
472 radius_x_(GetTouchRadiusX(native_event)), | 488 radius_x_(GetTouchRadiusX(native_event)), |
473 radius_y_(GetTouchRadiusY(native_event)), | 489 radius_y_(GetTouchRadiusY(native_event)), |
474 rotation_angle_(GetTouchAngle(native_event)), | 490 rotation_angle_(GetTouchAngle(native_event)), |
475 force_(GetTouchForce(native_event)) { | 491 force_(GetTouchForce(native_event)) { |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
530 LocatedEvent::UpdateForRootTransform(inverted_root_transform); | 546 LocatedEvent::UpdateForRootTransform(inverted_root_transform); |
531 gfx::DecomposedTransform decomp; | 547 gfx::DecomposedTransform decomp; |
532 bool success = gfx::DecomposeTransform(&decomp, inverted_root_transform); | 548 bool success = gfx::DecomposeTransform(&decomp, inverted_root_transform); |
533 DCHECK(success); | 549 DCHECK(success); |
534 if (decomp.scale[0]) | 550 if (decomp.scale[0]) |
535 radius_x_ *= decomp.scale[0]; | 551 radius_x_ *= decomp.scale[0]; |
536 if (decomp.scale[1]) | 552 if (decomp.scale[1]) |
537 radius_y_ *= decomp.scale[1]; | 553 radius_y_ *= decomp.scale[1]; |
538 } | 554 } |
539 | 555 |
| 556 scoped_ptr<Event> TouchEvent::Clone() const { |
| 557 return scoped_ptr<Event>(new TouchEvent(*this)); |
| 558 } |
| 559 |
540 //////////////////////////////////////////////////////////////////////////////// | 560 //////////////////////////////////////////////////////////////////////////////// |
541 // KeyEvent | 561 // KeyEvent |
542 | 562 |
543 // static | 563 // static |
544 KeyEvent* KeyEvent::last_key_event_ = NULL; | 564 KeyEvent* KeyEvent::last_key_event_ = NULL; |
545 | 565 |
546 // static | 566 // static |
547 bool KeyEvent::IsRepeated(const KeyEvent& event) { | 567 bool KeyEvent::IsRepeated(const KeyEvent& event) { |
548 // A safe guard in case if there were continous key pressed events that are | 568 // A safe guard in case if there were continous key pressed events that are |
549 // not auto repeat. | 569 // not auto repeat. |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 break; | 776 break; |
757 case ET_KEY_RELEASED: | 777 case ET_KEY_RELEASED: |
758 case ET_TRANSLATED_KEY_RELEASE: | 778 case ET_TRANSLATED_KEY_RELEASE: |
759 SetType(translated ? ET_TRANSLATED_KEY_RELEASE : ET_KEY_RELEASED); | 779 SetType(translated ? ET_TRANSLATED_KEY_RELEASE : ET_KEY_RELEASED); |
760 break; | 780 break; |
761 default: | 781 default: |
762 NOTREACHED(); | 782 NOTREACHED(); |
763 } | 783 } |
764 } | 784 } |
765 | 785 |
| 786 scoped_ptr<Event> KeyEvent::Clone() const { |
| 787 return scoped_ptr<Event>(new KeyEvent(*this)); |
| 788 } |
| 789 |
766 //////////////////////////////////////////////////////////////////////////////// | 790 //////////////////////////////////////////////////////////////////////////////// |
767 // ScrollEvent | 791 // ScrollEvent |
768 | 792 |
769 ScrollEvent::ScrollEvent(const base::NativeEvent& native_event) | 793 ScrollEvent::ScrollEvent(const base::NativeEvent& native_event) |
770 : MouseEvent(native_event) { | 794 : MouseEvent(native_event) { |
771 if (type() == ET_SCROLL) { | 795 if (type() == ET_SCROLL) { |
772 GetScrollOffsets(native_event, | 796 GetScrollOffsets(native_event, |
773 &x_offset_, &y_offset_, | 797 &x_offset_, &y_offset_, |
774 &x_offset_ordinal_, &y_offset_ordinal_, | 798 &x_offset_ordinal_, &y_offset_ordinal_, |
775 &finger_count_); | 799 &finger_count_); |
(...skipping 28 matching lines...) Expand all Loading... |
804 CHECK(IsScrollEvent()); | 828 CHECK(IsScrollEvent()); |
805 } | 829 } |
806 | 830 |
807 void ScrollEvent::Scale(const float factor) { | 831 void ScrollEvent::Scale(const float factor) { |
808 x_offset_ *= factor; | 832 x_offset_ *= factor; |
809 y_offset_ *= factor; | 833 y_offset_ *= factor; |
810 x_offset_ordinal_ *= factor; | 834 x_offset_ordinal_ *= factor; |
811 y_offset_ordinal_ *= factor; | 835 y_offset_ordinal_ *= factor; |
812 } | 836 } |
813 | 837 |
| 838 scoped_ptr<Event> ScrollEvent::Clone() const { |
| 839 return scoped_ptr<Event>(new ScrollEvent(*this)); |
| 840 } |
| 841 |
814 //////////////////////////////////////////////////////////////////////////////// | 842 //////////////////////////////////////////////////////////////////////////////// |
815 // GestureEvent | 843 // GestureEvent |
816 | 844 |
817 GestureEvent::GestureEvent(float x, | 845 GestureEvent::GestureEvent(float x, |
818 float y, | 846 float y, |
819 int flags, | 847 int flags, |
820 base::TimeDelta time_stamp, | 848 base::TimeDelta time_stamp, |
821 const GestureEventDetails& details) | 849 const GestureEventDetails& details) |
822 : LocatedEvent(details.type(), | 850 : LocatedEvent(details.type(), |
823 gfx::PointF(x, y), | 851 gfx::PointF(x, y), |
824 gfx::PointF(x, y), | 852 gfx::PointF(x, y), |
825 time_stamp, | 853 time_stamp, |
826 flags | EF_FROM_TOUCH), | 854 flags | EF_FROM_TOUCH), |
827 details_(details) { | 855 details_(details) { |
828 } | 856 } |
829 | 857 |
830 GestureEvent::~GestureEvent() { | 858 GestureEvent::~GestureEvent() { |
831 } | 859 } |
832 | 860 |
| 861 scoped_ptr<Event> GestureEvent::Clone() const { |
| 862 return scoped_ptr<Event>(new GestureEvent(*this)); |
| 863 } |
| 864 |
833 } // namespace ui | 865 } // namespace ui |
OLD | NEW |