| 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 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 10 | 10 |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 } | 315 } |
| 316 | 316 |
| 317 void Event::SetHandled() { | 317 void Event::SetHandled() { |
| 318 // TODO(sad): Re-enable these checks once View uses dispatcher to dispatch | 318 // TODO(sad): Re-enable these checks once View uses dispatcher to dispatch |
| 319 // events. | 319 // events. |
| 320 // CHECK(phase_ != EP_PREDISPATCH && phase_ != EP_POSTDISPATCH); | 320 // CHECK(phase_ != EP_PREDISPATCH && phase_ != EP_POSTDISPATCH); |
| 321 CHECK(cancelable_); | 321 CHECK(cancelable_); |
| 322 result_ = static_cast<EventResult>(result_ | ER_HANDLED); | 322 result_ = static_cast<EventResult>(result_ | ER_HANDLED); |
| 323 } | 323 } |
| 324 | 324 |
| 325 Event::Event(EventType type, base::TimeDelta time_stamp, int flags) | 325 Event::Event(EventType type, base::TimeTicks time_stamp, int flags) |
| 326 : type_(type), | 326 : type_(type), |
| 327 time_stamp_(time_stamp), | 327 time_stamp_(time_stamp), |
| 328 flags_(flags), | 328 flags_(flags), |
| 329 native_event_(base::NativeEvent()), | 329 native_event_(base::NativeEvent()), |
| 330 delete_native_event_(false), | 330 delete_native_event_(false), |
| 331 cancelable_(true), | 331 cancelable_(true), |
| 332 target_(NULL), | 332 target_(NULL), |
| 333 phase_(EP_PREDISPATCH), | 333 phase_(EP_PREDISPATCH), |
| 334 result_(ER_UNHANDLED), | 334 result_(ER_UNHANDLED), |
| 335 source_device_id_(ED_UNKNOWN_DEVICE) { | 335 source_device_id_(ED_UNKNOWN_DEVICE) { |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 name_ = std::string(); | 404 name_ = std::string(); |
| 405 type_ = type; | 405 type_ = type; |
| 406 if (type_ < ET_LAST) | 406 if (type_ < ET_LAST) |
| 407 name_ = EventTypeName(type_); | 407 name_ = EventTypeName(type_); |
| 408 } | 408 } |
| 409 | 409 |
| 410 //////////////////////////////////////////////////////////////////////////////// | 410 //////////////////////////////////////////////////////////////////////////////// |
| 411 // CancelModeEvent | 411 // CancelModeEvent |
| 412 | 412 |
| 413 CancelModeEvent::CancelModeEvent() | 413 CancelModeEvent::CancelModeEvent() |
| 414 : Event(ET_CANCEL_MODE, base::TimeDelta(), 0) { | 414 : Event(ET_CANCEL_MODE, base::TimeTicks(), 0) { |
| 415 set_cancelable(false); | 415 set_cancelable(false); |
| 416 } | 416 } |
| 417 | 417 |
| 418 CancelModeEvent::~CancelModeEvent() { | 418 CancelModeEvent::~CancelModeEvent() { |
| 419 } | 419 } |
| 420 | 420 |
| 421 //////////////////////////////////////////////////////////////////////////////// | 421 //////////////////////////////////////////////////////////////////////////////// |
| 422 // LocatedEvent | 422 // LocatedEvent |
| 423 | 423 |
| 424 LocatedEvent::~LocatedEvent() { | 424 LocatedEvent::~LocatedEvent() { |
| 425 } | 425 } |
| 426 | 426 |
| 427 LocatedEvent::LocatedEvent(const base::NativeEvent& native_event) | 427 LocatedEvent::LocatedEvent(const base::NativeEvent& native_event) |
| 428 : Event(native_event, | 428 : Event(native_event, |
| 429 EventTypeFromNative(native_event), | 429 EventTypeFromNative(native_event), |
| 430 EventFlagsFromNative(native_event)), | 430 EventFlagsFromNative(native_event)), |
| 431 location_(EventLocationFromNative(native_event)), | 431 location_(EventLocationFromNative(native_event)), |
| 432 root_location_(location_) { | 432 root_location_(location_) { |
| 433 } | 433 } |
| 434 | 434 |
| 435 LocatedEvent::LocatedEvent(EventType type, | 435 LocatedEvent::LocatedEvent(EventType type, |
| 436 const gfx::PointF& location, | 436 const gfx::PointF& location, |
| 437 const gfx::PointF& root_location, | 437 const gfx::PointF& root_location, |
| 438 base::TimeDelta time_stamp, | 438 base::TimeTicks time_stamp, |
| 439 int flags) | 439 int flags) |
| 440 : Event(type, time_stamp, flags), | 440 : Event(type, time_stamp, flags), |
| 441 location_(location), | 441 location_(location), |
| 442 root_location_(root_location) { | 442 root_location_(root_location) {} |
| 443 } | |
| 444 | 443 |
| 445 void LocatedEvent::UpdateForRootTransform( | 444 void LocatedEvent::UpdateForRootTransform( |
| 446 const gfx::Transform& reversed_root_transform) { | 445 const gfx::Transform& reversed_root_transform) { |
| 447 // Transform has to be done at root level. | 446 // Transform has to be done at root level. |
| 448 gfx::Point3F p(location_); | 447 gfx::Point3F p(location_); |
| 449 reversed_root_transform.TransformPoint(&p); | 448 reversed_root_transform.TransformPoint(&p); |
| 450 location_ = p.AsPointF(); | 449 location_ = p.AsPointF(); |
| 451 root_location_ = location_; | 450 root_location_ = location_; |
| 452 } | 451 } |
| 453 | 452 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 488 break; | 487 break; |
| 489 | 488 |
| 490 default: | 489 default: |
| 491 NOTREACHED(); | 490 NOTREACHED(); |
| 492 } | 491 } |
| 493 } | 492 } |
| 494 | 493 |
| 495 MouseEvent::MouseEvent(EventType type, | 494 MouseEvent::MouseEvent(EventType type, |
| 496 const gfx::Point& location, | 495 const gfx::Point& location, |
| 497 const gfx::Point& root_location, | 496 const gfx::Point& root_location, |
| 498 base::TimeDelta time_stamp, | 497 base::TimeTicks time_stamp, |
| 499 int flags, | 498 int flags, |
| 500 int changed_button_flags) | 499 int changed_button_flags) |
| 501 : LocatedEvent(type, | 500 : LocatedEvent(type, |
| 502 gfx::PointF(location), | 501 gfx::PointF(location), |
| 503 gfx::PointF(root_location), | 502 gfx::PointF(root_location), |
| 504 time_stamp, | 503 time_stamp, |
| 505 flags), | 504 flags), |
| 506 changed_button_flags_(changed_button_flags), | 505 changed_button_flags_(changed_button_flags), |
| 507 pointer_details_(PointerDetails(EventPointerType::POINTER_TYPE_MOUSE)) { | 506 pointer_details_(PointerDetails(EventPointerType::POINTER_TYPE_MOUSE)) { |
| 508 if (this->type() == ET_MOUSE_MOVED && IsAnyButton()) | 507 if (this->type() == ET_MOUSE_MOVED && IsAnyButton()) |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 651 | 650 |
| 652 MouseWheelEvent::MouseWheelEvent(const MouseWheelEvent& mouse_wheel_event) | 651 MouseWheelEvent::MouseWheelEvent(const MouseWheelEvent& mouse_wheel_event) |
| 653 : MouseEvent(mouse_wheel_event), | 652 : MouseEvent(mouse_wheel_event), |
| 654 offset_(mouse_wheel_event.offset()) { | 653 offset_(mouse_wheel_event.offset()) { |
| 655 DCHECK(type() == ET_MOUSEWHEEL); | 654 DCHECK(type() == ET_MOUSEWHEEL); |
| 656 } | 655 } |
| 657 | 656 |
| 658 MouseWheelEvent::MouseWheelEvent(const gfx::Vector2d& offset, | 657 MouseWheelEvent::MouseWheelEvent(const gfx::Vector2d& offset, |
| 659 const gfx::Point& location, | 658 const gfx::Point& location, |
| 660 const gfx::Point& root_location, | 659 const gfx::Point& root_location, |
| 661 base::TimeDelta time_stamp, | 660 base::TimeTicks time_stamp, |
| 662 int flags, | 661 int flags, |
| 663 int changed_button_flags) | 662 int changed_button_flags) |
| 664 : MouseEvent(ui::ET_MOUSEWHEEL, | 663 : MouseEvent(ui::ET_MOUSEWHEEL, |
| 665 location, | 664 location, |
| 666 root_location, | 665 root_location, |
| 667 time_stamp, | 666 time_stamp, |
| 668 flags, | 667 flags, |
| 669 changed_button_flags), | 668 changed_button_flags), |
| 670 offset_(offset) {} | 669 offset_(offset) {} |
| 671 | 670 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 726 break; | 725 break; |
| 727 | 726 |
| 728 default: | 727 default: |
| 729 NOTREACHED(); | 728 NOTREACHED(); |
| 730 } | 729 } |
| 731 } | 730 } |
| 732 | 731 |
| 733 TouchEvent::TouchEvent(EventType type, | 732 TouchEvent::TouchEvent(EventType type, |
| 734 const gfx::Point& location, | 733 const gfx::Point& location, |
| 735 int touch_id, | 734 int touch_id, |
| 736 base::TimeDelta time_stamp) | 735 base::TimeTicks time_stamp) |
| 737 : LocatedEvent(type, | 736 : LocatedEvent(type, |
| 738 gfx::PointF(location), | 737 gfx::PointF(location), |
| 739 gfx::PointF(location), | 738 gfx::PointF(location), |
| 740 time_stamp, | 739 time_stamp, |
| 741 0), | 740 0), |
| 742 touch_id_(touch_id), | 741 touch_id_(touch_id), |
| 743 unique_event_id_(ui::GetNextTouchEventId()), | 742 unique_event_id_(ui::GetNextTouchEventId()), |
| 744 rotation_angle_(0.0f), | 743 rotation_angle_(0.0f), |
| 745 may_cause_scrolling_(false), | 744 may_cause_scrolling_(false), |
| 746 should_remove_native_touch_id_mapping_(false), | 745 should_remove_native_touch_id_mapping_(false), |
| 747 pointer_details_(PointerDetails(EventPointerType::POINTER_TYPE_TOUCH)) { | 746 pointer_details_(PointerDetails(EventPointerType::POINTER_TYPE_TOUCH)) { |
| 748 latency()->AddLatencyNumber(INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); | 747 latency()->AddLatencyNumber(INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); |
| 749 } | 748 } |
| 750 | 749 |
| 751 TouchEvent::TouchEvent(EventType type, | 750 TouchEvent::TouchEvent(EventType type, |
| 752 const gfx::Point& location, | 751 const gfx::Point& location, |
| 753 int flags, | 752 int flags, |
| 754 int touch_id, | 753 int touch_id, |
| 755 base::TimeDelta time_stamp, | 754 base::TimeTicks time_stamp, |
| 756 float radius_x, | 755 float radius_x, |
| 757 float radius_y, | 756 float radius_y, |
| 758 float angle, | 757 float angle, |
| 759 float force) | 758 float force) |
| 760 : LocatedEvent(type, | 759 : LocatedEvent(type, |
| 761 gfx::PointF(location), | 760 gfx::PointF(location), |
| 762 gfx::PointF(location), | 761 gfx::PointF(location), |
| 763 time_stamp, | 762 time_stamp, |
| 764 flags), | 763 flags), |
| 765 touch_id_(touch_id), | 764 touch_id_(touch_id), |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 910 NOTREACHED(); | 909 NOTREACHED(); |
| 911 } | 910 } |
| 912 } | 911 } |
| 913 | 912 |
| 914 PointerEvent::PointerEvent(EventType type, | 913 PointerEvent::PointerEvent(EventType type, |
| 915 EventPointerType pointer_type, | 914 EventPointerType pointer_type, |
| 916 const gfx::Point& location, | 915 const gfx::Point& location, |
| 917 const gfx::Point& root_location, | 916 const gfx::Point& root_location, |
| 918 int flags, | 917 int flags, |
| 919 int pointer_id, | 918 int pointer_id, |
| 920 base::TimeDelta time_stamp) | 919 base::TimeTicks time_stamp) |
| 921 : LocatedEvent(type, | 920 : LocatedEvent(type, |
| 922 gfx::PointF(location), | 921 gfx::PointF(location), |
| 923 gfx::PointF(root_location), | 922 gfx::PointF(root_location), |
| 924 time_stamp, | 923 time_stamp, |
| 925 flags), | 924 flags), |
| 926 pointer_id_(pointer_id), | 925 pointer_id_(pointer_id), |
| 927 details_(PointerDetails(pointer_type)) {} | 926 details_(PointerDetails(pointer_type)) {} |
| 928 | 927 |
| 929 const int PointerEvent::kMousePointerId = std::numeric_limits<int32_t>::max(); | 928 const int PointerEvent::kMousePointerId = std::numeric_limits<int32_t>::max(); |
| 930 | 929 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 965 kMaxAutoRepeatTimeMs) { | 964 kMaxAutoRepeatTimeMs) { |
| 966 last_key_event_->set_time_stamp(event.time_stamp()); | 965 last_key_event_->set_time_stamp(event.time_stamp()); |
| 967 last_key_event_->set_flags(last_key_event_->flags() | ui::EF_IS_REPEAT); | 966 last_key_event_->set_flags(last_key_event_->flags() | ui::EF_IS_REPEAT); |
| 968 return true; | 967 return true; |
| 969 } | 968 } |
| 970 delete last_key_event_; | 969 delete last_key_event_; |
| 971 last_key_event_ = new KeyEvent(event); | 970 last_key_event_ = new KeyEvent(event); |
| 972 return false; | 971 return false; |
| 973 } | 972 } |
| 974 | 973 |
| 975 KeyEvent::KeyEvent(EventType type, base::TimeDelta time_stamp, int flags) | 974 KeyEvent::KeyEvent(EventType type, base::TimeTicks time_stamp, int flags) |
| 976 : Event(type, time_stamp, flags) {} | 975 : Event(type, time_stamp, flags) {} |
| 977 | 976 |
| 978 KeyEvent::KeyEvent(const base::NativeEvent& native_event) | 977 KeyEvent::KeyEvent(const base::NativeEvent& native_event) |
| 979 : Event(native_event, | 978 : Event(native_event, |
| 980 EventTypeFromNative(native_event), | 979 EventTypeFromNative(native_event), |
| 981 EventFlagsFromNative(native_event)), | 980 EventFlagsFromNative(native_event)), |
| 982 key_code_(KeyboardCodeFromNative(native_event)), | 981 key_code_(KeyboardCodeFromNative(native_event)), |
| 983 code_(CodeFromNative(native_event)), | 982 code_(CodeFromNative(native_event)), |
| 984 is_char_(IsCharFromNative(native_event)) { | 983 is_char_(IsCharFromNative(native_event)) { |
| 985 if (IsRepeated(*this)) | 984 if (IsRepeated(*this)) |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1012 : Event(type, EventTimeForNow(), flags), | 1011 : Event(type, EventTimeForNow(), flags), |
| 1013 key_code_(key_code), | 1012 key_code_(key_code), |
| 1014 code_(code) { | 1013 code_(code) { |
| 1015 } | 1014 } |
| 1016 | 1015 |
| 1017 KeyEvent::KeyEvent(EventType type, | 1016 KeyEvent::KeyEvent(EventType type, |
| 1018 KeyboardCode key_code, | 1017 KeyboardCode key_code, |
| 1019 DomCode code, | 1018 DomCode code, |
| 1020 int flags, | 1019 int flags, |
| 1021 DomKey key, | 1020 DomKey key, |
| 1022 base::TimeDelta time_stamp) | 1021 base::TimeTicks time_stamp) |
| 1023 : Event(type, time_stamp, flags), | 1022 : Event(type, time_stamp, flags), |
| 1024 key_code_(key_code), | 1023 key_code_(key_code), |
| 1025 code_(code), | 1024 code_(code), |
| 1026 key_(key) { | 1025 key_(key) {} |
| 1027 } | |
| 1028 | 1026 |
| 1029 KeyEvent::KeyEvent(base::char16 character, KeyboardCode key_code, int flags) | 1027 KeyEvent::KeyEvent(base::char16 character, KeyboardCode key_code, int flags) |
| 1030 : Event(ET_KEY_PRESSED, EventTimeForNow(), flags), | 1028 : Event(ET_KEY_PRESSED, EventTimeForNow(), flags), |
| 1031 key_code_(key_code), | 1029 key_code_(key_code), |
| 1032 code_(DomCode::NONE), | 1030 code_(DomCode::NONE), |
| 1033 is_char_(true), | 1031 is_char_(true), |
| 1034 key_(DomKey::FromCharacter(character)) { | 1032 key_(DomKey::FromCharacter(character)) { |
| 1035 } | 1033 } |
| 1036 | 1034 |
| 1037 KeyEvent::KeyEvent(const KeyEvent& rhs) | 1035 KeyEvent::KeyEvent(const KeyEvent& rhs) |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1233 &x_offset_ordinal_, &y_offset_ordinal_, | 1231 &x_offset_ordinal_, &y_offset_ordinal_, |
| 1234 NULL); | 1232 NULL); |
| 1235 } else { | 1233 } else { |
| 1236 NOTREACHED() << "Unexpected event type " << type() | 1234 NOTREACHED() << "Unexpected event type " << type() |
| 1237 << " when constructing a ScrollEvent."; | 1235 << " when constructing a ScrollEvent."; |
| 1238 } | 1236 } |
| 1239 } | 1237 } |
| 1240 | 1238 |
| 1241 ScrollEvent::ScrollEvent(EventType type, | 1239 ScrollEvent::ScrollEvent(EventType type, |
| 1242 const gfx::Point& location, | 1240 const gfx::Point& location, |
| 1243 base::TimeDelta time_stamp, | 1241 base::TimeTicks time_stamp, |
| 1244 int flags, | 1242 int flags, |
| 1245 float x_offset, | 1243 float x_offset, |
| 1246 float y_offset, | 1244 float y_offset, |
| 1247 float x_offset_ordinal, | 1245 float x_offset_ordinal, |
| 1248 float y_offset_ordinal, | 1246 float y_offset_ordinal, |
| 1249 int finger_count) | 1247 int finger_count) |
| 1250 : MouseEvent(type, location, location, time_stamp, flags, 0), | 1248 : MouseEvent(type, location, location, time_stamp, flags, 0), |
| 1251 x_offset_(x_offset), | 1249 x_offset_(x_offset), |
| 1252 y_offset_(y_offset), | 1250 y_offset_(y_offset), |
| 1253 x_offset_ordinal_(x_offset_ordinal), | 1251 x_offset_ordinal_(x_offset_ordinal), |
| 1254 y_offset_ordinal_(y_offset_ordinal), | 1252 y_offset_ordinal_(y_offset_ordinal), |
| 1255 finger_count_(finger_count) { | 1253 finger_count_(finger_count) { |
| 1256 CHECK(IsScrollEvent()); | 1254 CHECK(IsScrollEvent()); |
| 1257 } | 1255 } |
| 1258 | 1256 |
| 1259 void ScrollEvent::Scale(const float factor) { | 1257 void ScrollEvent::Scale(const float factor) { |
| 1260 x_offset_ *= factor; | 1258 x_offset_ *= factor; |
| 1261 y_offset_ *= factor; | 1259 y_offset_ *= factor; |
| 1262 x_offset_ordinal_ *= factor; | 1260 x_offset_ordinal_ *= factor; |
| 1263 y_offset_ordinal_ *= factor; | 1261 y_offset_ordinal_ *= factor; |
| 1264 } | 1262 } |
| 1265 | 1263 |
| 1266 //////////////////////////////////////////////////////////////////////////////// | 1264 //////////////////////////////////////////////////////////////////////////////// |
| 1267 // GestureEvent | 1265 // GestureEvent |
| 1268 | 1266 |
| 1269 GestureEvent::GestureEvent(float x, | 1267 GestureEvent::GestureEvent(float x, |
| 1270 float y, | 1268 float y, |
| 1271 int flags, | 1269 int flags, |
| 1272 base::TimeDelta time_stamp, | 1270 base::TimeTicks time_stamp, |
| 1273 const GestureEventDetails& details) | 1271 const GestureEventDetails& details) |
| 1274 : LocatedEvent(details.type(), | 1272 : LocatedEvent(details.type(), |
| 1275 gfx::PointF(x, y), | 1273 gfx::PointF(x, y), |
| 1276 gfx::PointF(x, y), | 1274 gfx::PointF(x, y), |
| 1277 time_stamp, | 1275 time_stamp, |
| 1278 flags | EF_FROM_TOUCH), | 1276 flags | EF_FROM_TOUCH), |
| 1279 details_(details) { | 1277 details_(details) {} |
| 1280 } | |
| 1281 | 1278 |
| 1282 GestureEvent::~GestureEvent() { | 1279 GestureEvent::~GestureEvent() { |
| 1283 } | 1280 } |
| 1284 | 1281 |
| 1285 } // namespace ui | 1282 } // namespace ui |
| OLD | NEW |