Chromium Code Reviews| Index: ui/events/event.h |
| diff --git a/ui/events/event.h b/ui/events/event.h |
| index 7257f625f40299b32510fb80850b4259db5f00c0..b55eeae84e563d70513e7fc725b03fa785fa51c8 100644 |
| --- a/ui/events/event.h |
| +++ b/ui/events/event.h |
| @@ -215,6 +215,9 @@ class EVENTS_EXPORT Event { |
| void SetHandled(); |
| bool handled() const { return result_ != ER_UNHANDLED; } |
| + // Used to create a copy of |this|. |
| + virtual scoped_ptr<Event> Clone() const = 0; |
|
sadrul
2014/08/29 21:12:17
Can we have a static Event::Clone(const Event& eve
tdanderson
2014/09/02 22:57:09
Done.
|
| + |
| protected: |
| Event(EventType type, base::TimeDelta time_stamp, int flags); |
| Event(const base::NativeEvent& native_event, EventType type, int flags); |
| @@ -255,6 +258,9 @@ class EVENTS_EXPORT CancelModeEvent : public Event { |
| public: |
| CancelModeEvent(); |
| virtual ~CancelModeEvent(); |
| + |
| + // Event: |
| + virtual scoped_ptr<Event> Clone() const OVERRIDE; |
| }; |
| class EVENTS_EXPORT LocatedEvent : public Event { |
| @@ -294,6 +300,9 @@ class EVENTS_EXPORT LocatedEvent : public Event { |
| location_= location_ - diff; |
| } |
| + // Event: |
| + virtual scoped_ptr<Event> Clone() const OVERRIDE; |
| + |
| protected: |
| friend class LocatedEventTestApi; |
| explicit LocatedEvent(const base::NativeEvent& native_event); |
| @@ -401,6 +410,9 @@ class EVENTS_EXPORT MouseEvent : public LocatedEvent { |
| // Set the click count for a mousedown message. Can be 1, 2 or 3. |
| void SetClickCount(int click_count); |
| + // Event: |
| + virtual scoped_ptr<Event> Clone() const OVERRIDE; |
| + |
| // Identifies the button that changed. During a press this corresponds to the |
| // button that was pressed and during a release this corresponds to the button |
| // that was released. |
| @@ -470,6 +482,9 @@ class EVENTS_EXPORT MouseWheelEvent : public MouseEvent { |
| virtual void UpdateForRootTransform( |
| const gfx::Transform& inverted_root_transform) OVERRIDE; |
| + // Event: |
| + virtual scoped_ptr<Event> Clone() const OVERRIDE; |
| + |
| private: |
| gfx::Vector2d offset_; |
| }; |
| @@ -522,6 +537,9 @@ class EVENTS_EXPORT TouchEvent : public LocatedEvent { |
| virtual void UpdateForRootTransform( |
| const gfx::Transform& inverted_root_transform) OVERRIDE; |
| + // Event: |
| + virtual scoped_ptr<Event> Clone() const OVERRIDE; |
| + |
| protected: |
| void set_radius(float radius_x, float radius_y) { |
| radius_x_ = radius_x; |
| @@ -664,6 +682,9 @@ class EVENTS_EXPORT KeyEvent : public Event { |
| // Marks this key event as translated or not translated. |
| void SetTranslated(bool translated); |
| + // Event: |
| + virtual scoped_ptr<Event> Clone() const OVERRIDE; |
| + |
| protected: |
| friend class KeyEventTestApi; |
| @@ -737,6 +758,9 @@ class EVENTS_EXPORT ScrollEvent : public MouseEvent { |
| // to provide a consistent user experience. |
| void Scale(const float factor); |
| + // Event: |
| + virtual scoped_ptr<Event> Clone() const OVERRIDE; |
| + |
| float x_offset() const { return x_offset_; } |
| float y_offset() const { return y_offset_; } |
| float x_offset_ordinal() const { return x_offset_ordinal_; } |
| @@ -773,6 +797,9 @@ class EVENTS_EXPORT GestureEvent : public LocatedEvent { |
| virtual ~GestureEvent(); |
| + // Event: |
| + virtual scoped_ptr<Event> Clone() const OVERRIDE; |
| + |
| const GestureEventDetails& details() const { return details_; } |
| private: |