| Index: ui/events/event.h
|
| diff --git a/ui/events/event.h b/ui/events/event.h
|
| index d774897bcf29e287165f45f317035d00a11aec9f..334dc7e6be4903347982d4f2a9155ab6c98001a8 100644
|
| --- a/ui/events/event.h
|
| +++ b/ui/events/event.h
|
| @@ -53,15 +53,14 @@ class EVENTS_EXPORT Event {
|
| DISALLOW_COPY_AND_ASSIGN(DispatcherApi);
|
| };
|
|
|
| - const base::NativeEvent& native_event() const { return native_event_; }
|
| EventType type() const { return type_; }
|
| - const std::string& name() const { return name_; }
|
| + void set_type(EventType type) { type_ = type; }
|
| +
|
| // time_stamp represents time since machine was booted.
|
| const base::TimeDelta& time_stamp() const { return time_stamp_; }
|
| - int flags() const { return flags_; }
|
| + void set_time_stamp(const base::TimeDelta& stamp) { time_stamp_ = stamp; }
|
|
|
| - // This is only intended to be used externally by classes that are modifying
|
| - // events in an EventRewriter.
|
| + int flags() const { return flags_; }
|
| void set_flags(int flags) { flags_ = flags; }
|
|
|
| EventTarget* target() const { return target_; }
|
| @@ -73,6 +72,7 @@ class EVENTS_EXPORT Event {
|
| void set_latency(const LatencyInfo& latency) { latency_ = latency; }
|
|
|
| int source_device_id() const { return source_device_id_; }
|
| + void set_source_device_id(const int id) { source_device_id_ = id; }
|
|
|
| // By default, events are "cancelable", this means any default processing that
|
| // the containing abstraction layer may perform can be prevented by calling
|
| @@ -199,9 +199,6 @@ class EVENTS_EXPORT Event {
|
| GestureEvent* AsGestureEvent();
|
| const GestureEvent* AsGestureEvent() const;
|
|
|
| - // Returns true if the event has a valid |native_event_|.
|
| - bool HasNativeEvent() const;
|
| -
|
| // Immediately stops the propagation of the event. This must be called only
|
| // from an EventHandler during an event-dispatch. Any event handler that may
|
| // be in the list will not receive the event after this is called.
|
| @@ -218,31 +215,19 @@ class EVENTS_EXPORT Event {
|
| bool handled() const { return result_ != ER_UNHANDLED; }
|
|
|
| protected:
|
| + Event();
|
| Event(EventType type, base::TimeDelta time_stamp, int flags);
|
| - Event(const base::NativeEvent& native_event, EventType type, int flags);
|
| Event(const Event& copy);
|
| void SetType(EventType type);
|
| - void set_delete_native_event(bool delete_native_event) {
|
| - delete_native_event_ = delete_native_event;
|
| - }
|
| void set_cancelable(bool cancelable) { cancelable_ = cancelable; }
|
|
|
| - void set_time_stamp(const base::TimeDelta& time_stamp) {
|
| - time_stamp_ = time_stamp;
|
| - }
|
| -
|
| - void set_name(const std::string& name) { name_ = name; }
|
| -
|
| private:
|
| friend class EventTestApi;
|
|
|
| EventType type_;
|
| - std::string name_;
|
| base::TimeDelta time_stamp_;
|
| LatencyInfo latency_;
|
| int flags_;
|
| - base::NativeEvent native_event_;
|
| - bool delete_native_event_;
|
| bool cancelable_;
|
| EventTarget* target_;
|
| EventPhase phase_;
|
| @@ -261,6 +246,7 @@ class EVENTS_EXPORT CancelModeEvent : public Event {
|
|
|
| class EVENTS_EXPORT LocatedEvent : public Event {
|
| public:
|
| + LocatedEvent();
|
| ~LocatedEvent() override;
|
|
|
| float x() const { return location_.x(); }
|
| @@ -279,6 +265,10 @@ class EVENTS_EXPORT LocatedEvent : public Event {
|
| const gfx::PointF& root_location_f() const {
|
| return root_location_;
|
| }
|
| + const gfx::Point& screen_location() const { return screen_location_; }
|
| + void set_screen_location(const gfx::Point& screen_location) {
|
| + screen_location_ = screen_location;
|
| + }
|
|
|
| // Transform the locations using |inverted_root_transform|.
|
| // This is applied to both |location_| and |root_location_|.
|
| @@ -298,7 +288,6 @@ class EVENTS_EXPORT LocatedEvent : public Event {
|
|
|
| protected:
|
| friend class LocatedEventTestApi;
|
| - explicit LocatedEvent(const base::NativeEvent& native_event);
|
|
|
| // Create a new LocatedEvent which is identical to the provided model.
|
| // If source / target windows are provided, the model location will be
|
| @@ -307,7 +296,8 @@ class EVENTS_EXPORT LocatedEvent : public Event {
|
| LocatedEvent(const LocatedEvent& model, T* source, T* target)
|
| : Event(model),
|
| location_(model.location_),
|
| - root_location_(model.root_location_) {
|
| + root_location_(model.root_location_),
|
| + screen_location_(model.screen_location_) {
|
| ConvertLocationToTarget(source, target);
|
| }
|
|
|
| @@ -323,11 +313,14 @@ class EVENTS_EXPORT LocatedEvent : public Event {
|
| // |location_| multiplied by an optional transformation matrix for
|
| // rotations, animations and skews.
|
| gfx::PointF root_location_;
|
| +
|
| + // The system provided location of the event.
|
| + gfx::Point screen_location_;
|
| };
|
|
|
| class EVENTS_EXPORT MouseEvent : public LocatedEvent {
|
| public:
|
| - explicit MouseEvent(const base::NativeEvent& native_event);
|
| + MouseEvent();
|
|
|
| // Create a new MouseEvent based on the provided model.
|
| // Uses the provided |type| and |flags| for the new event.
|
| @@ -413,26 +406,16 @@ class EVENTS_EXPORT MouseEvent : public LocatedEvent {
|
| // Updates the button that changed.
|
| void set_changed_button_flags(int flags) { changed_button_flags_ = flags; }
|
|
|
| - private:
|
| - FRIEND_TEST_ALL_PREFIXES(EventTest, DoubleClickRequiresRelease);
|
| - FRIEND_TEST_ALL_PREFIXES(EventTest, SingleClickRightLeft);
|
| -
|
| // Returns the repeat count based on the previous mouse click, if it is
|
| // recent enough and within a small enough distance.
|
| static int GetRepeatCount(const MouseEvent& click_event);
|
|
|
| - // Resets the last_click_event_ for unit tests.
|
| - static void ResetLastClickForTest();
|
| + private:
|
| + FRIEND_TEST_ALL_PREFIXES(EventTest, DoubleClickRequiresRelease);
|
| + FRIEND_TEST_ALL_PREFIXES(EventTest, SingleClickRightLeft);
|
|
|
| // See description above getter for details.
|
| int changed_button_flags_;
|
| -
|
| - static MouseEvent* last_click_event_;
|
| -
|
| - // We can create a MouseEvent for a native event more than once. We set this
|
| - // to true when the next event either has a different timestamp or we see a
|
| - // release signalling that the press (click) event was completed.
|
| - static bool last_click_complete_;
|
| };
|
|
|
| class ScrollEvent;
|
| @@ -442,7 +425,7 @@ class EVENTS_EXPORT MouseWheelEvent : public MouseEvent {
|
| // See |offset| for details.
|
| static const int kWheelDelta;
|
|
|
| - explicit MouseWheelEvent(const base::NativeEvent& native_event);
|
| + MouseWheelEvent();
|
| explicit MouseWheelEvent(const ScrollEvent& scroll_event);
|
| MouseWheelEvent(const MouseEvent& mouse_event, int x_offset, int y_offset);
|
| MouseWheelEvent(const MouseWheelEvent& mouse_wheel_event);
|
| @@ -467,6 +450,7 @@ class EVENTS_EXPORT MouseWheelEvent : public MouseEvent {
|
| int x_offset() const { return offset_.x(); }
|
| int y_offset() const { return offset_.y(); }
|
| const gfx::Vector2d& offset() const { return offset_; }
|
| + void set_offset(const gfx::Vector2d& offset) { offset_ = offset; }
|
|
|
| // Overridden from LocatedEvent.
|
| void UpdateForRootTransform(
|
| @@ -478,7 +462,7 @@ class EVENTS_EXPORT MouseWheelEvent : public MouseEvent {
|
|
|
| class EVENTS_EXPORT TouchEvent : public LocatedEvent {
|
| public:
|
| - explicit TouchEvent(const base::NativeEvent& native_event);
|
| + TouchEvent();
|
|
|
| // Create a new TouchEvent which is identical to the provided model.
|
| // If source / target windows are provided, the model location will be
|
| @@ -511,14 +495,20 @@ class EVENTS_EXPORT TouchEvent : public LocatedEvent {
|
| ~TouchEvent() override;
|
|
|
| int touch_id() const { return touch_id_; }
|
| + void set_touch_id(int touch_id) { touch_id_ = touch_id; }
|
| +
|
| float radius_x() const { return radius_x_; }
|
| + void set_radius_x(const float r) { radius_x_ = r; }
|
| float radius_y() const { return radius_y_; }
|
| + void set_radius_y(const float r) { radius_y_ = r; }
|
| +
|
| float rotation_angle() const { return rotation_angle_; }
|
| - float force() const { return force_; }
|
| + void set_rotation_angle(float rotation_angle) {
|
| + rotation_angle_ = rotation_angle;
|
| + }
|
|
|
| - // Used for unit tests.
|
| - void set_radius_x(const float r) { radius_x_ = r; }
|
| - void set_radius_y(const float r) { radius_y_ = r; }
|
| + float force() const { return force_; }
|
| + void set_force(float force) { force_ = force; }
|
|
|
| // Overridden from LocatedEvent.
|
| void UpdateForRootTransform(
|
| @@ -530,16 +520,10 @@ class EVENTS_EXPORT TouchEvent : public LocatedEvent {
|
| radius_y_ = radius_y;
|
| }
|
|
|
| - void set_rotation_angle(float rotation_angle) {
|
| - rotation_angle_ = rotation_angle;
|
| - }
|
| -
|
| - void set_force(float force) { force_ = force; }
|
| -
|
| private:
|
| // The identity (typically finger) of the touch starting at 0 and incrementing
|
| // for each separable additional touch that the hardware can detect.
|
| - const int touch_id_;
|
| + int touch_id_;
|
|
|
| // Radius of the X (major) axis of the touch ellipse. 0.0 if unknown.
|
| float radius_x_;
|
| @@ -593,10 +577,7 @@ class EVENTS_EXPORT ExtendedKeyEventData {
|
| //
|
| class EVENTS_EXPORT KeyEvent : public Event {
|
| public:
|
| - // Create a KeyEvent from a NativeEvent. For Windows this native event can
|
| - // be either a keystroke message (WM_KEYUP/WM_KEYDOWN) or a character message
|
| - // (WM_CHAR). Other systems have only keystroke events.
|
| - explicit KeyEvent(const base::NativeEvent& native_event);
|
| + KeyEvent();
|
|
|
| // Create a keystroke event.
|
| KeyEvent(EventType type, KeyboardCode key_code, int flags);
|
| @@ -648,8 +629,8 @@ class EVENTS_EXPORT KeyEvent : public Event {
|
| base::char16 GetText() const;
|
|
|
| // Gets the platform key code. For XKB, this is the xksym value.
|
| - void set_platform_keycode(uint32 keycode) { platform_keycode_ = keycode; }
|
| uint32 platform_keycode() const { return platform_keycode_; }
|
| + void set_platform_keycode(uint32 keycode) { platform_keycode_ = keycode; }
|
|
|
| // Gets the associated (Windows-based) KeyboardCode for this key event.
|
| // Historically, this has also been used to obtain the character associated
|
| @@ -657,13 +638,11 @@ class EVENTS_EXPORT KeyEvent : public Event {
|
| // This should be avoided; if necessary for backwards compatibility, use
|
| // GetConflatedWindowsKeyCode().
|
| KeyboardCode key_code() const { return key_code_; }
|
| + void set_key_code(KeyboardCode key_code) { key_code_ = key_code; }
|
|
|
| // True if this is a character event, false if this is a keystroke event.
|
| bool is_char() const { return is_char_; }
|
| -
|
| - // This is only intended to be used externally by classes that are modifying
|
| - // events in an EventRewriter.
|
| - void set_key_code(KeyboardCode key_code) { key_code_ = key_code; }
|
| + void set_is_char(bool is_char) { is_char_ = is_char; }
|
|
|
| // Returns the same value as key_code(), except that located codes are
|
| // returned in place of non-located ones (e.g. VKEY_LSHIFT or VKEY_RSHIFT
|
| @@ -681,6 +660,7 @@ class EVENTS_EXPORT KeyEvent : public Event {
|
| bool IsUnicodeKeyCode() const;
|
|
|
| std::string code() const { return code_; }
|
| + void set_code(const std::string& code) { code_ = code; }
|
|
|
| // Normalizes flags_ so that it describes the state after the event.
|
| // (Native X11 event flags describe the state before the event.)
|
| @@ -695,9 +675,6 @@ class EVENTS_EXPORT KeyEvent : public Event {
|
| protected:
|
| friend class KeyEventTestApi;
|
|
|
| - // This allows a subclass TranslatedKeyEvent to be a non character event.
|
| - void set_is_char(bool is_char) { is_char_ = is_char; }
|
| -
|
| private:
|
| // True if the key press originated from a 'right' key (VKEY_RSHIFT, etc.).
|
| bool IsRightSideKey() const;
|
| @@ -731,15 +708,11 @@ class EVENTS_EXPORT KeyEvent : public Event {
|
| // mojo instead serializes and deserializes events in potentially different
|
| // processes, we need to have a mechanism to keep track of this data.
|
| scoped_ptr<ExtendedKeyEventData> extended_key_event_data_;
|
| -
|
| - static bool IsRepeated(const KeyEvent& event);
|
| -
|
| - static KeyEvent* last_key_event_;
|
| };
|
|
|
| class EVENTS_EXPORT ScrollEvent : public MouseEvent {
|
| public:
|
| - explicit ScrollEvent(const base::NativeEvent& native_event);
|
| + ScrollEvent();
|
| template <class T>
|
| ScrollEvent(const ScrollEvent& model,
|
| T* source,
|
| @@ -770,9 +743,20 @@ class EVENTS_EXPORT ScrollEvent : public MouseEvent {
|
|
|
| float x_offset() const { return x_offset_; }
|
| float y_offset() const { return y_offset_; }
|
| + void set_offset(float x, float y) {
|
| + x_offset_ = x;
|
| + y_offset_ = y;
|
| + }
|
| +
|
| float x_offset_ordinal() const { return x_offset_ordinal_; }
|
| float y_offset_ordinal() const { return y_offset_ordinal_; }
|
| + void set_offset_ordinal(float x, float y) {
|
| + x_offset_ordinal_ = x;
|
| + y_offset_ordinal_ = y;
|
| + }
|
| +
|
| int finger_count() const { return finger_count_; }
|
| + void set_finger_count(int finger_count) { finger_count_ = finger_count; }
|
|
|
| private:
|
| // Potential accelerated offsets.
|
|
|