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 #ifndef UI_EVENTS_EVENT_H_ | 5 #ifndef UI_EVENTS_EVENT_H_ |
6 #define UI_EVENTS_EVENT_H_ | 6 #define UI_EVENTS_EVENT_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 DispatcherApi(); | 70 DispatcherApi(); |
71 Event* event_; | 71 Event* event_; |
72 | 72 |
73 DISALLOW_COPY_AND_ASSIGN(DispatcherApi); | 73 DISALLOW_COPY_AND_ASSIGN(DispatcherApi); |
74 }; | 74 }; |
75 | 75 |
76 const base::NativeEvent& native_event() const { return native_event_; } | 76 const base::NativeEvent& native_event() const { return native_event_; } |
77 EventType type() const { return type_; } | 77 EventType type() const { return type_; } |
78 const std::string& name() const { return name_; } | 78 const std::string& name() const { return name_; } |
79 // time_stamp represents time since machine was booted. | 79 // time_stamp represents time since machine was booted. |
80 const base::TimeDelta& time_stamp() const { return time_stamp_; } | 80 const base::TimeTicks time_stamp() const { return time_stamp_; } |
81 int flags() const { return flags_; } | 81 int flags() const { return flags_; } |
82 | 82 |
83 // This is only intended to be used externally by classes that are modifying | 83 // This is only intended to be used externally by classes that are modifying |
84 // events in an EventRewriter. | 84 // events in an EventRewriter. |
85 void set_flags(int flags) { flags_ = flags; } | 85 void set_flags(int flags) { flags_ = flags; } |
86 | 86 |
87 EventTarget* target() const { return target_; } | 87 EventTarget* target() const { return target_; } |
88 EventPhase phase() const { return phase_; } | 88 EventPhase phase() const { return phase_; } |
89 EventResult result() const { return result_; } | 89 EventResult result() const { return result_; } |
90 | 90 |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 | 275 |
276 // Marks the event as having been handled. A handled event does not reach the | 276 // Marks the event as having been handled. A handled event does not reach the |
277 // next event phase. For example, if an event is handled during the pre-target | 277 // next event phase. For example, if an event is handled during the pre-target |
278 // phase, then the event is dispatched to all pre-target handlers, but not to | 278 // phase, then the event is dispatched to all pre-target handlers, but not to |
279 // the target or post-target handlers. | 279 // the target or post-target handlers. |
280 // Note that SetHandled() can be called only for cancelable events. | 280 // Note that SetHandled() can be called only for cancelable events. |
281 void SetHandled(); | 281 void SetHandled(); |
282 bool handled() const { return result_ != ER_UNHANDLED; } | 282 bool handled() const { return result_ != ER_UNHANDLED; } |
283 | 283 |
284 protected: | 284 protected: |
285 Event(EventType type, base::TimeDelta time_stamp, int flags); | 285 Event(EventType type, base::TimeTicks time_stamp, int flags); |
286 Event(const base::NativeEvent& native_event, EventType type, int flags); | 286 Event(const base::NativeEvent& native_event, EventType type, int flags); |
287 Event(const Event& copy); | 287 Event(const Event& copy); |
288 void SetType(EventType type); | 288 void SetType(EventType type); |
289 void set_cancelable(bool cancelable) { cancelable_ = cancelable; } | 289 void set_cancelable(bool cancelable) { cancelable_ = cancelable; } |
290 | 290 |
291 void set_time_stamp(const base::TimeDelta& time_stamp) { | 291 void set_time_stamp(base::TimeTicks time_stamp) { |
292 time_stamp_ = time_stamp; | 292 time_stamp_ = time_stamp; |
293 } | 293 } |
294 | 294 |
295 void set_name(const std::string& name) { name_ = name; } | 295 void set_name(const std::string& name) { name_ = name; } |
296 | 296 |
297 private: | 297 private: |
298 friend class EventTestApi; | 298 friend class EventTestApi; |
299 | 299 |
300 // For (de)serialization. | 300 // For (de)serialization. |
301 friend struct IPC::ParamTraits<ui::ScopedEvent>; | 301 friend struct IPC::ParamTraits<ui::ScopedEvent>; |
302 | 302 |
303 EventType type_; | 303 EventType type_; |
304 std::string name_; | 304 std::string name_; |
305 base::TimeDelta time_stamp_; | 305 base::TimeTicks time_stamp_; |
306 LatencyInfo latency_; | 306 LatencyInfo latency_; |
307 int flags_; | 307 int flags_; |
308 base::NativeEvent native_event_; | 308 base::NativeEvent native_event_; |
309 bool delete_native_event_; | 309 bool delete_native_event_; |
310 bool cancelable_; | 310 bool cancelable_; |
311 EventTarget* target_; | 311 EventTarget* target_; |
312 EventPhase phase_; | 312 EventPhase phase_; |
313 EventResult result_; | 313 EventResult result_; |
314 | 314 |
315 // The device id the event came from, or ED_UNKNOWN_DEVICE if the information | 315 // The device id the event came from, or ED_UNKNOWN_DEVICE if the information |
316 // is not available. | 316 // is not available. |
317 int source_device_id_; | 317 int source_device_id_; |
318 }; | 318 }; |
319 | 319 |
320 class EVENTS_EXPORT CancelModeEvent : public Event { | 320 class EVENTS_EXPORT CancelModeEvent : public Event { |
321 public: | 321 public: |
322 CancelModeEvent(); | 322 CancelModeEvent(); |
323 ~CancelModeEvent() override; | 323 ~CancelModeEvent() override; |
324 | 324 |
325 private: | 325 private: |
326 // For (de)serialization. | 326 // For (de)serialization. |
327 CancelModeEvent(EventType type, base::TimeDelta time_stamp, int flags) | 327 CancelModeEvent(EventType type, base::TimeTicks time_stamp, int flags) |
328 : Event(type, time_stamp, flags) {} | 328 : Event(type, time_stamp, flags) {} |
329 friend struct IPC::ParamTraits<ui::ScopedEvent>; | 329 friend struct IPC::ParamTraits<ui::ScopedEvent>; |
330 friend struct IPC::ParamTraits<ui::CancelModeEvent>; | 330 friend struct IPC::ParamTraits<ui::CancelModeEvent>; |
331 }; | 331 }; |
332 | 332 |
333 class EVENTS_EXPORT LocatedEvent : public Event { | 333 class EVENTS_EXPORT LocatedEvent : public Event { |
334 public: | 334 public: |
335 ~LocatedEvent() override; | 335 ~LocatedEvent() override; |
336 | 336 |
337 float x() const { return location_.x(); } | 337 float x() const { return location_.x(); } |
(...skipping 28 matching lines...) Expand all Loading... |
366 gfx::Point offset = gfx::ToFlooredPoint(location_); | 366 gfx::Point offset = gfx::ToFlooredPoint(location_); |
367 T::ConvertPointToTarget(source, target, &offset); | 367 T::ConvertPointToTarget(source, target, &offset); |
368 gfx::Vector2d diff = gfx::ToFlooredPoint(location_) - offset; | 368 gfx::Vector2d diff = gfx::ToFlooredPoint(location_) - offset; |
369 location_= location_ - diff; | 369 location_= location_ - diff; |
370 } | 370 } |
371 | 371 |
372 protected: | 372 protected: |
373 friend class LocatedEventTestApi; | 373 friend class LocatedEventTestApi; |
374 | 374 |
375 // For (de)serialization. | 375 // For (de)serialization. |
376 LocatedEvent(EventType type, base::TimeDelta time_stamp, int flags) | 376 LocatedEvent(EventType type, base::TimeTicks time_stamp, int flags) |
377 : Event(type, time_stamp, flags) {} | 377 : Event(type, time_stamp, flags) {} |
378 friend struct IPC::ParamTraits<ui::ScopedEvent>; | 378 friend struct IPC::ParamTraits<ui::ScopedEvent>; |
379 friend struct IPC::ParamTraits<ui::LocatedEvent>; | 379 friend struct IPC::ParamTraits<ui::LocatedEvent>; |
380 | 380 |
381 explicit LocatedEvent(const base::NativeEvent& native_event); | 381 explicit LocatedEvent(const base::NativeEvent& native_event); |
382 | 382 |
383 // Create a new LocatedEvent which is identical to the provided model. | 383 // Create a new LocatedEvent which is identical to the provided model. |
384 // If source / target windows are provided, the model location will be | 384 // If source / target windows are provided, the model location will be |
385 // converted from |source| coordinate system to |target| coordinate system. | 385 // converted from |source| coordinate system to |target| coordinate system. |
386 template <class T> | 386 template <class T> |
387 LocatedEvent(const LocatedEvent& model, T* source, T* target) | 387 LocatedEvent(const LocatedEvent& model, T* source, T* target) |
388 : Event(model), | 388 : Event(model), |
389 location_(model.location_), | 389 location_(model.location_), |
390 root_location_(model.root_location_) { | 390 root_location_(model.root_location_) { |
391 ConvertLocationToTarget(source, target); | 391 ConvertLocationToTarget(source, target); |
392 } | 392 } |
393 | 393 |
394 // Used for synthetic events in testing. | 394 // Used for synthetic events in testing. |
395 LocatedEvent(EventType type, | 395 LocatedEvent(EventType type, |
396 const gfx::PointF& location, | 396 const gfx::PointF& location, |
397 const gfx::PointF& root_location, | 397 const gfx::PointF& root_location, |
398 base::TimeDelta time_stamp, | 398 base::TimeTicks time_stamp, |
399 int flags); | 399 int flags); |
400 | 400 |
401 gfx::PointF location_; | 401 gfx::PointF location_; |
402 | 402 |
403 // |location_| multiplied by an optional transformation matrix for | 403 // |location_| multiplied by an optional transformation matrix for |
404 // rotations, animations and skews. | 404 // rotations, animations and skews. |
405 gfx::PointF root_location_; | 405 gfx::PointF root_location_; |
406 }; | 406 }; |
407 | 407 |
408 // Structure for handling common fields between touch and mouse to support | 408 // Structure for handling common fields between touch and mouse to support |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 changed_button_flags_(model.changed_button_flags_), | 488 changed_button_flags_(model.changed_button_flags_), |
489 pointer_details_(model.pointer_details_) { | 489 pointer_details_(model.pointer_details_) { |
490 SetType(type); | 490 SetType(type); |
491 set_flags(flags); | 491 set_flags(flags); |
492 } | 492 } |
493 | 493 |
494 // Used for synthetic events in testing, gesture recognizer and Ozone | 494 // Used for synthetic events in testing, gesture recognizer and Ozone |
495 MouseEvent(EventType type, | 495 MouseEvent(EventType type, |
496 const gfx::Point& location, | 496 const gfx::Point& location, |
497 const gfx::Point& root_location, | 497 const gfx::Point& root_location, |
498 base::TimeDelta time_stamp, | 498 base::TimeTicks time_stamp, |
499 int flags, | 499 int flags, |
500 int changed_button_flags); | 500 int changed_button_flags); |
501 | 501 |
502 // Conveniences to quickly test what button is down | 502 // Conveniences to quickly test what button is down |
503 bool IsOnlyLeftMouseButton() const { | 503 bool IsOnlyLeftMouseButton() const { |
504 return button_flags() == EF_LEFT_MOUSE_BUTTON; | 504 return button_flags() == EF_LEFT_MOUSE_BUTTON; |
505 } | 505 } |
506 | 506 |
507 bool IsLeftMouseButton() const { | 507 bool IsLeftMouseButton() const { |
508 return (flags() & EF_LEFT_MOUSE_BUTTON) != 0; | 508 return (flags() & EF_LEFT_MOUSE_BUTTON) != 0; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
558 void set_changed_button_flags(int flags) { changed_button_flags_ = flags; } | 558 void set_changed_button_flags(int flags) { changed_button_flags_ = flags; } |
559 | 559 |
560 // Event details common to MouseEvent and TouchEvent. | 560 // Event details common to MouseEvent and TouchEvent. |
561 const PointerDetails& pointer_details() const { return pointer_details_; } | 561 const PointerDetails& pointer_details() const { return pointer_details_; } |
562 void set_pointer_details(const PointerDetails& details) { | 562 void set_pointer_details(const PointerDetails& details) { |
563 pointer_details_ = details; | 563 pointer_details_ = details; |
564 } | 564 } |
565 | 565 |
566 protected: | 566 protected: |
567 // For (de)serialization. | 567 // For (de)serialization. |
568 MouseEvent(EventType type, base::TimeDelta time_stamp, int flags) | 568 MouseEvent(EventType type, base::TimeTicks time_stamp, int flags) |
569 : LocatedEvent(type, time_stamp, flags) {} | 569 : LocatedEvent(type, time_stamp, flags) {} |
570 friend struct IPC::ParamTraits<ui::ScopedEvent>; | 570 friend struct IPC::ParamTraits<ui::ScopedEvent>; |
571 friend struct IPC::ParamTraits<ui::MouseEvent>; | 571 friend struct IPC::ParamTraits<ui::MouseEvent>; |
572 | 572 |
573 private: | 573 private: |
574 FRIEND_TEST_ALL_PREFIXES(EventTest, DoubleClickRequiresRelease); | 574 FRIEND_TEST_ALL_PREFIXES(EventTest, DoubleClickRequiresRelease); |
575 FRIEND_TEST_ALL_PREFIXES(EventTest, SingleClickRightLeft); | 575 FRIEND_TEST_ALL_PREFIXES(EventTest, SingleClickRightLeft); |
576 | 576 |
577 // Returns the repeat count based on the previous mouse click, if it is | 577 // Returns the repeat count based on the previous mouse click, if it is |
578 // recent enough and within a small enough distance. | 578 // recent enough and within a small enough distance. |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
612 T* source, | 612 T* source, |
613 T* target) | 613 T* target) |
614 : MouseEvent(model, source, target, model.type(), model.flags()), | 614 : MouseEvent(model, source, target, model.type(), model.flags()), |
615 offset_(model.x_offset(), model.y_offset()) { | 615 offset_(model.x_offset(), model.y_offset()) { |
616 } | 616 } |
617 | 617 |
618 // Used for synthetic events in testing and by the gesture recognizer. | 618 // Used for synthetic events in testing and by the gesture recognizer. |
619 MouseWheelEvent(const gfx::Vector2d& offset, | 619 MouseWheelEvent(const gfx::Vector2d& offset, |
620 const gfx::Point& location, | 620 const gfx::Point& location, |
621 const gfx::Point& root_location, | 621 const gfx::Point& root_location, |
622 base::TimeDelta time_stamp, | 622 base::TimeTicks time_stamp, |
623 int flags, | 623 int flags, |
624 int changed_button_flags); | 624 int changed_button_flags); |
625 | 625 |
626 // The amount to scroll. This is in multiples of kWheelDelta. | 626 // The amount to scroll. This is in multiples of kWheelDelta. |
627 // Note: x_offset() > 0/y_offset() > 0 means scroll left/up. | 627 // Note: x_offset() > 0/y_offset() > 0 means scroll left/up. |
628 int x_offset() const { return offset_.x(); } | 628 int x_offset() const { return offset_.x(); } |
629 int y_offset() const { return offset_.y(); } | 629 int y_offset() const { return offset_.y(); } |
630 const gfx::Vector2d& offset() const { return offset_; } | 630 const gfx::Vector2d& offset() const { return offset_; } |
631 | 631 |
632 private: | 632 private: |
633 // For (de)serialization. | 633 // For (de)serialization. |
634 MouseWheelEvent(EventType type, base::TimeDelta time_stamp, int flags) | 634 MouseWheelEvent(EventType type, base::TimeTicks time_stamp, int flags) |
635 : MouseEvent(type, time_stamp, flags) {} | 635 : MouseEvent(type, time_stamp, flags) {} |
636 friend struct IPC::ParamTraits<ui::ScopedEvent>; | 636 friend struct IPC::ParamTraits<ui::ScopedEvent>; |
637 friend struct IPC::ParamTraits<ui::MouseWheelEvent>; | 637 friend struct IPC::ParamTraits<ui::MouseWheelEvent>; |
638 | 638 |
639 gfx::Vector2d offset_; | 639 gfx::Vector2d offset_; |
640 }; | 640 }; |
641 | 641 |
642 class EVENTS_EXPORT TouchEvent : public LocatedEvent { | 642 class EVENTS_EXPORT TouchEvent : public LocatedEvent { |
643 public: | 643 public: |
644 explicit TouchEvent(const base::NativeEvent& native_event); | 644 explicit TouchEvent(const base::NativeEvent& native_event); |
(...skipping 10 matching lines...) Expand all Loading... |
655 touch_id_(model.touch_id_), | 655 touch_id_(model.touch_id_), |
656 unique_event_id_(model.unique_event_id_), | 656 unique_event_id_(model.unique_event_id_), |
657 rotation_angle_(model.rotation_angle_), | 657 rotation_angle_(model.rotation_angle_), |
658 may_cause_scrolling_(model.may_cause_scrolling_), | 658 may_cause_scrolling_(model.may_cause_scrolling_), |
659 should_remove_native_touch_id_mapping_(false), | 659 should_remove_native_touch_id_mapping_(false), |
660 pointer_details_(model.pointer_details_) {} | 660 pointer_details_(model.pointer_details_) {} |
661 | 661 |
662 TouchEvent(EventType type, | 662 TouchEvent(EventType type, |
663 const gfx::Point& location, | 663 const gfx::Point& location, |
664 int touch_id, | 664 int touch_id, |
665 base::TimeDelta time_stamp); | 665 base::TimeTicks time_stamp); |
666 | 666 |
667 TouchEvent(EventType type, | 667 TouchEvent(EventType type, |
668 const gfx::Point& location, | 668 const gfx::Point& location, |
669 int flags, | 669 int flags, |
670 int touch_id, | 670 int touch_id, |
671 base::TimeDelta timestamp, | 671 base::TimeTicks timestamp, |
672 float radius_x, | 672 float radius_x, |
673 float radius_y, | 673 float radius_y, |
674 float angle, | 674 float angle, |
675 float force); | 675 float force); |
676 | 676 |
677 TouchEvent(const TouchEvent& copy); | 677 TouchEvent(const TouchEvent& copy); |
678 | 678 |
679 ~TouchEvent() override; | 679 ~TouchEvent() override; |
680 | 680 |
681 // The id of the pointer this event modifies. | 681 // The id of the pointer this event modifies. |
(...skipping 23 matching lines...) Expand all Loading... |
705 } | 705 } |
706 | 706 |
707 // Event details common to MouseEvent and TouchEvent. | 707 // Event details common to MouseEvent and TouchEvent. |
708 const PointerDetails& pointer_details() const { return pointer_details_; } | 708 const PointerDetails& pointer_details() const { return pointer_details_; } |
709 void set_pointer_details(const PointerDetails& pointer_details) { | 709 void set_pointer_details(const PointerDetails& pointer_details) { |
710 pointer_details_ = pointer_details; | 710 pointer_details_ = pointer_details; |
711 } | 711 } |
712 | 712 |
713 private: | 713 private: |
714 // For (de)serialization. | 714 // For (de)serialization. |
715 TouchEvent(EventType type, base::TimeDelta time_stamp, int flags) | 715 TouchEvent(EventType type, base::TimeTicks time_stamp, int flags) |
716 : LocatedEvent(type, time_stamp, flags), | 716 : LocatedEvent(type, time_stamp, flags), |
717 should_remove_native_touch_id_mapping_(false) {} | 717 should_remove_native_touch_id_mapping_(false) {} |
718 friend struct IPC::ParamTraits<ui::ScopedEvent>; | 718 friend struct IPC::ParamTraits<ui::ScopedEvent>; |
719 friend struct IPC::ParamTraits<ui::TouchEvent>; | 719 friend struct IPC::ParamTraits<ui::TouchEvent>; |
720 | 720 |
721 // Adjusts rotation_angle_ to within the acceptable range. | 721 // Adjusts rotation_angle_ to within the acceptable range. |
722 void FixRotationAngle(); | 722 void FixRotationAngle(); |
723 | 723 |
724 // The identity (typically finger) of the touch starting at 0 and incrementing | 724 // The identity (typically finger) of the touch starting at 0 and incrementing |
725 // for each separable additional touch that the hardware can detect. | 725 // for each separable additional touch that the hardware can detect. |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
759 PointerEvent(const PointerEvent& pointer_event); | 759 PointerEvent(const PointerEvent& pointer_event); |
760 explicit PointerEvent(const MouseEvent& mouse_event); | 760 explicit PointerEvent(const MouseEvent& mouse_event); |
761 explicit PointerEvent(const TouchEvent& touch_event); | 761 explicit PointerEvent(const TouchEvent& touch_event); |
762 | 762 |
763 PointerEvent(EventType type, | 763 PointerEvent(EventType type, |
764 EventPointerType pointer_type, | 764 EventPointerType pointer_type, |
765 const gfx::Point& location, | 765 const gfx::Point& location, |
766 const gfx::Point& root_location, | 766 const gfx::Point& root_location, |
767 int flags, | 767 int flags, |
768 int pointer_id, | 768 int pointer_id, |
769 base::TimeDelta time_stamp); | 769 base::TimeTicks time_stamp); |
770 | 770 |
771 int32_t pointer_id() const { return pointer_id_; } | 771 int32_t pointer_id() const { return pointer_id_; } |
772 const PointerDetails& pointer_details() const { return details_; } | 772 const PointerDetails& pointer_details() const { return details_; } |
773 | 773 |
774 protected: | 774 protected: |
775 // For (de)serialization. | 775 // For (de)serialization. |
776 PointerEvent(EventType type, base::TimeDelta time_stamp, int flags) | 776 PointerEvent(EventType type, base::TimeTicks time_stamp, int flags) |
777 : LocatedEvent(type, time_stamp, flags) {} | 777 : LocatedEvent(type, time_stamp, flags) {} |
778 friend struct IPC::ParamTraits<ui::ScopedEvent>; | 778 friend struct IPC::ParamTraits<ui::ScopedEvent>; |
779 friend struct IPC::ParamTraits<ui::PointerEvent>; | 779 friend struct IPC::ParamTraits<ui::PointerEvent>; |
780 | 780 |
781 private: | 781 private: |
782 int32_t pointer_id_; | 782 int32_t pointer_id_; |
783 PointerDetails details_; | 783 PointerDetails details_; |
784 }; | 784 }; |
785 | 785 |
786 // An interface that individual platforms can use to store additional data on | 786 // An interface that individual platforms can use to store additional data on |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 // Create a keystroke event from a legacy KeyboardCode. | 842 // Create a keystroke event from a legacy KeyboardCode. |
843 // This should not be used in new code. | 843 // This should not be used in new code. |
844 KeyEvent(EventType type, KeyboardCode key_code, int flags); | 844 KeyEvent(EventType type, KeyboardCode key_code, int flags); |
845 | 845 |
846 // Create a fully defined keystroke event. | 846 // Create a fully defined keystroke event. |
847 KeyEvent(EventType type, | 847 KeyEvent(EventType type, |
848 KeyboardCode key_code, | 848 KeyboardCode key_code, |
849 DomCode code, | 849 DomCode code, |
850 int flags, | 850 int flags, |
851 DomKey key, | 851 DomKey key, |
852 base::TimeDelta time_stamp); | 852 base::TimeTicks time_stamp); |
853 | 853 |
854 // Create a character event. | 854 // Create a character event. |
855 KeyEvent(base::char16 character, KeyboardCode key_code, int flags); | 855 KeyEvent(base::char16 character, KeyboardCode key_code, int flags); |
856 | 856 |
857 // Used for synthetic events with code of DOM KeyboardEvent (e.g. 'KeyA') | 857 // Used for synthetic events with code of DOM KeyboardEvent (e.g. 'KeyA') |
858 // See also: ui/events/keycodes/dom/dom_values.txt | 858 // See also: ui/events/keycodes/dom/dom_values.txt |
859 KeyEvent(EventType type, | 859 KeyEvent(EventType type, |
860 KeyboardCode key_code, | 860 KeyboardCode key_code, |
861 DomCode code, | 861 DomCode code, |
862 int flags); | 862 int flags); |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
942 void NormalizeFlags(); | 942 void NormalizeFlags(); |
943 | 943 |
944 protected: | 944 protected: |
945 friend class KeyEventTestApi; | 945 friend class KeyEventTestApi; |
946 | 946 |
947 // This allows a subclass TranslatedKeyEvent to be a non character event. | 947 // This allows a subclass TranslatedKeyEvent to be a non character event. |
948 void set_is_char(bool is_char) { is_char_ = is_char; } | 948 void set_is_char(bool is_char) { is_char_ = is_char; } |
949 | 949 |
950 private: | 950 private: |
951 // For (de)serialization. | 951 // For (de)serialization. |
952 KeyEvent(EventType type, base::TimeDelta time_stamp, int flags); | 952 KeyEvent(EventType type, base::TimeTicks time_stamp, int flags); |
953 friend struct IPC::ParamTraits<ui::ScopedEvent>; | 953 friend struct IPC::ParamTraits<ui::ScopedEvent>; |
954 friend struct IPC::ParamTraits<ui::KeyEvent>; | 954 friend struct IPC::ParamTraits<ui::KeyEvent>; |
955 | 955 |
956 // Determine key_ on a keystroke event from code_ and flags(). | 956 // Determine key_ on a keystroke event from code_ and flags(). |
957 void ApplyLayout() const; | 957 void ApplyLayout() const; |
958 | 958 |
959 KeyboardCode key_code_; | 959 KeyboardCode key_code_; |
960 | 960 |
961 // DOM KeyboardEvent |code| (e.g. DomCode::US_A, DomCode::SPACE). | 961 // DOM KeyboardEvent |code| (e.g. DomCode::US_A, DomCode::SPACE). |
962 // http://www.w3.org/TR/DOM-Level-3-Events-code/ | 962 // http://www.w3.org/TR/DOM-Level-3-Events-code/ |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1004 x_offset_(model.x_offset_), | 1004 x_offset_(model.x_offset_), |
1005 y_offset_(model.y_offset_), | 1005 y_offset_(model.y_offset_), |
1006 x_offset_ordinal_(model.x_offset_ordinal_), | 1006 x_offset_ordinal_(model.x_offset_ordinal_), |
1007 y_offset_ordinal_(model.y_offset_ordinal_), | 1007 y_offset_ordinal_(model.y_offset_ordinal_), |
1008 finger_count_(model.finger_count_){ | 1008 finger_count_(model.finger_count_){ |
1009 } | 1009 } |
1010 | 1010 |
1011 // Used for tests. | 1011 // Used for tests. |
1012 ScrollEvent(EventType type, | 1012 ScrollEvent(EventType type, |
1013 const gfx::Point& location, | 1013 const gfx::Point& location, |
1014 base::TimeDelta time_stamp, | 1014 base::TimeTicks time_stamp, |
1015 int flags, | 1015 int flags, |
1016 float x_offset, | 1016 float x_offset, |
1017 float y_offset, | 1017 float y_offset, |
1018 float x_offset_ordinal, | 1018 float x_offset_ordinal, |
1019 float y_offset_ordinal, | 1019 float y_offset_ordinal, |
1020 int finger_count); | 1020 int finger_count); |
1021 | 1021 |
1022 // Scale the scroll event's offset value. | 1022 // Scale the scroll event's offset value. |
1023 // This is useful in the multi-monitor setup where it needs to be scaled | 1023 // This is useful in the multi-monitor setup where it needs to be scaled |
1024 // to provide a consistent user experience. | 1024 // to provide a consistent user experience. |
1025 void Scale(const float factor); | 1025 void Scale(const float factor); |
1026 | 1026 |
1027 float x_offset() const { return x_offset_; } | 1027 float x_offset() const { return x_offset_; } |
1028 float y_offset() const { return y_offset_; } | 1028 float y_offset() const { return y_offset_; } |
1029 float x_offset_ordinal() const { return x_offset_ordinal_; } | 1029 float x_offset_ordinal() const { return x_offset_ordinal_; } |
1030 float y_offset_ordinal() const { return y_offset_ordinal_; } | 1030 float y_offset_ordinal() const { return y_offset_ordinal_; } |
1031 int finger_count() const { return finger_count_; } | 1031 int finger_count() const { return finger_count_; } |
1032 | 1032 |
1033 private: | 1033 private: |
1034 // For (de)serialization. | 1034 // For (de)serialization. |
1035 ScrollEvent(EventType type, base::TimeDelta time_stamp, int flags) | 1035 ScrollEvent(EventType type, base::TimeTicks time_stamp, int flags) |
1036 : MouseEvent(type, time_stamp, flags) {} | 1036 : MouseEvent(type, time_stamp, flags) {} |
1037 friend struct IPC::ParamTraits<ui::ScopedEvent>; | 1037 friend struct IPC::ParamTraits<ui::ScopedEvent>; |
1038 friend struct IPC::ParamTraits<ui::ScrollEvent>; | 1038 friend struct IPC::ParamTraits<ui::ScrollEvent>; |
1039 | 1039 |
1040 // Potential accelerated offsets. | 1040 // Potential accelerated offsets. |
1041 float x_offset_; | 1041 float x_offset_; |
1042 float y_offset_; | 1042 float y_offset_; |
1043 // Unaccelerated offsets. | 1043 // Unaccelerated offsets. |
1044 float x_offset_ordinal_; | 1044 float x_offset_ordinal_; |
1045 float y_offset_ordinal_; | 1045 float y_offset_ordinal_; |
1046 // Number of fingers on the pad. | 1046 // Number of fingers on the pad. |
1047 int finger_count_; | 1047 int finger_count_; |
1048 }; | 1048 }; |
1049 | 1049 |
1050 class EVENTS_EXPORT GestureEvent : public LocatedEvent { | 1050 class EVENTS_EXPORT GestureEvent : public LocatedEvent { |
1051 public: | 1051 public: |
1052 GestureEvent(float x, | 1052 GestureEvent(float x, |
1053 float y, | 1053 float y, |
1054 int flags, | 1054 int flags, |
1055 base::TimeDelta time_stamp, | 1055 base::TimeTicks time_stamp, |
1056 const GestureEventDetails& details); | 1056 const GestureEventDetails& details); |
1057 | 1057 |
1058 // Create a new GestureEvent which is identical to the provided model. | 1058 // Create a new GestureEvent which is identical to the provided model. |
1059 // If source / target windows are provided, the model location will be | 1059 // If source / target windows are provided, the model location will be |
1060 // converted from |source| coordinate system to |target| coordinate system. | 1060 // converted from |source| coordinate system to |target| coordinate system. |
1061 template <typename T> | 1061 template <typename T> |
1062 GestureEvent(const GestureEvent& model, T* source, T* target) | 1062 GestureEvent(const GestureEvent& model, T* source, T* target) |
1063 : LocatedEvent(model, source, target), | 1063 : LocatedEvent(model, source, target), |
1064 details_(model.details_) { | 1064 details_(model.details_) { |
1065 } | 1065 } |
1066 | 1066 |
1067 ~GestureEvent() override; | 1067 ~GestureEvent() override; |
1068 | 1068 |
1069 const GestureEventDetails& details() const { return details_; } | 1069 const GestureEventDetails& details() const { return details_; } |
1070 | 1070 |
1071 private: | 1071 private: |
1072 // For (de)serialization. | 1072 // For (de)serialization. |
1073 GestureEvent(EventType type, base::TimeDelta time_stamp, int flags) | 1073 GestureEvent(EventType type, base::TimeTicks time_stamp, int flags) |
1074 : LocatedEvent(type, time_stamp, flags) {} | 1074 : LocatedEvent(type, time_stamp, flags) {} |
1075 friend struct IPC::ParamTraits<ui::ScopedEvent>; | 1075 friend struct IPC::ParamTraits<ui::ScopedEvent>; |
1076 friend struct IPC::ParamTraits<ui::GestureEvent>; | 1076 friend struct IPC::ParamTraits<ui::GestureEvent>; |
1077 | 1077 |
1078 GestureEventDetails details_; | 1078 GestureEventDetails details_; |
1079 }; | 1079 }; |
1080 | 1080 |
1081 } // namespace ui | 1081 } // namespace ui |
1082 | 1082 |
1083 #endif // UI_EVENTS_EVENT_H_ | 1083 #endif // UI_EVENTS_EVENT_H_ |
OLD | NEW |