| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_EVENTS_OZONE_EVDEV_DEVICE_EVENT_DISPATCHER_H_ |
| #define UI_EVENTS_OZONE_EVDEV_DEVICE_EVENT_DISPATCHER_H_ |
| |
| #include <vector> |
| |
| #include "base/time/time.h" |
| #include "ui/events/devices/input_device.h" |
| #include "ui/events/devices/touchscreen_device.h" |
| #include "ui/events/event.h" |
| #include "ui/events/event_constants.h" |
| #include "ui/events/ozone/evdev/events_ozone_evdev_export.h" |
| #include "ui/events/ozone/gamepad/gamepad_event.h" |
| #include "ui/gfx/geometry/point_f.h" |
| #include "ui/gfx/geometry/vector2d.h" |
| #include "ui/gfx/geometry/vector2d_f.h" |
| |
| namespace ui { |
| |
| enum class StylusState; |
| |
| struct EVENTS_OZONE_EVDEV_EXPORT KeyEventParams { |
| KeyEventParams(int device_id, |
| unsigned int code, |
| bool down, |
| bool suppress_auto_repeat, |
| base::TimeTicks timestamp); |
| KeyEventParams(const KeyEventParams& other); |
| KeyEventParams() {} |
| ~KeyEventParams(); |
| |
| int device_id; |
| unsigned int code; |
| bool down; |
| bool suppress_auto_repeat; |
| base::TimeTicks timestamp; |
| }; |
| |
| struct EVENTS_OZONE_EVDEV_EXPORT MouseMoveEventParams { |
| MouseMoveEventParams(int device_id, |
| int flags, |
| const gfx::PointF& location, |
| const PointerDetails& details, |
| base::TimeTicks timestamp); |
| MouseMoveEventParams(const MouseMoveEventParams& other); |
| MouseMoveEventParams() {} |
| ~MouseMoveEventParams(); |
| |
| int device_id; |
| int flags; |
| gfx::PointF location; |
| PointerDetails pointer_details; |
| base::TimeTicks timestamp; |
| }; |
| |
| struct EVENTS_OZONE_EVDEV_EXPORT MouseButtonEventParams { |
| MouseButtonEventParams(int device_id, |
| int flags, |
| const gfx::PointF& location, |
| unsigned int button, |
| bool down, |
| bool allow_remap, |
| const PointerDetails& details, |
| base::TimeTicks timestamp); |
| MouseButtonEventParams(const MouseButtonEventParams& other); |
| MouseButtonEventParams() {} |
| ~MouseButtonEventParams(); |
| |
| int device_id; |
| int flags; |
| gfx::PointF location; |
| unsigned int button; |
| bool down; |
| bool allow_remap; |
| PointerDetails pointer_details; |
| base::TimeTicks timestamp; |
| }; |
| |
| struct EVENTS_OZONE_EVDEV_EXPORT MouseWheelEventParams { |
| MouseWheelEventParams(int device_id, |
| const gfx::PointF& location, |
| const gfx::Vector2d& delta, |
| base::TimeTicks timestamp); |
| MouseWheelEventParams(const MouseWheelEventParams& other); |
| MouseWheelEventParams() {} |
| ~MouseWheelEventParams(); |
| |
| int device_id; |
| gfx::PointF location; |
| gfx::Vector2d delta; |
| base::TimeTicks timestamp; |
| }; |
| |
| struct EVENTS_OZONE_EVDEV_EXPORT PinchEventParams { |
| PinchEventParams(int device_id, |
| EventType type, |
| const gfx::PointF location, |
| float scale, |
| const base::TimeTicks timestamp); |
| PinchEventParams(const PinchEventParams& other); |
| PinchEventParams() {} |
| ~PinchEventParams(); |
| |
| int device_id; |
| EventType type; |
| const gfx::PointF location; |
| float scale; |
| const base::TimeTicks timestamp; |
| }; |
| |
| struct EVENTS_OZONE_EVDEV_EXPORT ScrollEventParams { |
| ScrollEventParams(int device_id, |
| EventType type, |
| const gfx::PointF location, |
| const gfx::Vector2dF& delta, |
| const gfx::Vector2dF& ordinal_delta, |
| int finger_count, |
| const base::TimeTicks timestamp); |
| ScrollEventParams(const ScrollEventParams& other); |
| ScrollEventParams() {} |
| ~ScrollEventParams(); |
| |
| int device_id; |
| EventType type; |
| const gfx::PointF location; |
| const gfx::Vector2dF delta; |
| const gfx::Vector2dF ordinal_delta; |
| int finger_count; |
| const base::TimeTicks timestamp; |
| }; |
| |
| struct EVENTS_OZONE_EVDEV_EXPORT TouchEventParams { |
| TouchEventParams(int device_id, |
| int slot, |
| EventType type, |
| const gfx::PointF& location, |
| const PointerDetails& pointer_details, |
| const base::TimeTicks& timestamp, |
| int flags); |
| TouchEventParams(const TouchEventParams& other); |
| TouchEventParams() {} |
| ~TouchEventParams(); |
| |
| int device_id; |
| int slot; |
| EventType type; |
| gfx::PointF location; |
| PointerDetails pointer_details; |
| base::TimeTicks timestamp; |
| int flags; |
| }; |
| |
| // Interface used by device objects for event dispatch. |
| class EVENTS_OZONE_EVDEV_EXPORT DeviceEventDispatcherEvdev { |
| public: |
| DeviceEventDispatcherEvdev() {} |
| virtual ~DeviceEventDispatcherEvdev() {} |
| |
| // User input events. |
| virtual void DispatchKeyEvent(const KeyEventParams& params) = 0; |
| virtual void DispatchMouseMoveEvent(const MouseMoveEventParams& params) = 0; |
| virtual void DispatchMouseButtonEvent( |
| const MouseButtonEventParams& params) = 0; |
| virtual void DispatchMouseWheelEvent(const MouseWheelEventParams& params) = 0; |
| virtual void DispatchPinchEvent(const PinchEventParams& params) = 0; |
| virtual void DispatchScrollEvent(const ScrollEventParams& params) = 0; |
| virtual void DispatchTouchEvent(const TouchEventParams& params) = 0; |
| virtual void DispatchGamepadEvent(const GamepadEvent& event) = 0; |
| |
| // Device lifecycle events. |
| virtual void DispatchKeyboardDevicesUpdated( |
| const std::vector<InputDevice>& devices) = 0; |
| virtual void DispatchTouchscreenDevicesUpdated( |
| const std::vector<TouchscreenDevice>& devices) = 0; |
| virtual void DispatchMouseDevicesUpdated( |
| const std::vector<InputDevice>& devices) = 0; |
| virtual void DispatchTouchpadDevicesUpdated( |
| const std::vector<InputDevice>& devices) = 0; |
| virtual void DispatchDeviceListsComplete() = 0; |
| virtual void DispatchStylusStateChanged(StylusState stylus_state) = 0; |
| virtual void DispatchGamepadDevicesUpdated( |
| const std::vector<InputDevice>& devices) = 0; |
| }; |
| |
| } // namespace ui |
| |
| #endif // UI_EVENTS_OZONE_EVDEV_DEVICE_EVENT_DISPATCHER_H_ |