| // Copyright 2014 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_INPUT_INJECTOR_EVDEV_H_ |
| #define UI_EVENTS_OZONE_EVDEV_INPUT_INJECTOR_EVDEV_H_ |
| |
| #include "base/macros.h" |
| #include "ui/events/ozone/evdev/event_dispatch_callback.h" |
| #include "ui/events/ozone/evdev/events_ozone_evdev_export.h" |
| #include "ui/events/system_input_injector.h" |
| |
| namespace ui { |
| |
| class CursorDelegateEvdev; |
| class DeviceEventDispatcherEvdev; |
| |
| class EVENTS_OZONE_EVDEV_EXPORT InputInjectorEvdev |
| : public SystemInputInjector { |
| public: |
| InputInjectorEvdev(std::unique_ptr<DeviceEventDispatcherEvdev> dispatcher, |
| CursorDelegateEvdev* cursor); |
| |
| ~InputInjectorEvdev() override; |
| |
| // SystemInputInjector implementation. |
| void InjectMouseButton(EventFlags button, bool down) override; |
| void InjectMouseWheel(int delta_x, int delta_y) override; |
| void MoveCursorTo(const gfx::PointF& location) override; |
| void InjectKeyEvent(DomCode physical_key, |
| bool down, |
| bool suppress_auto_repeat) override; |
| |
| private: |
| // Shared cursor state. |
| CursorDelegateEvdev* cursor_; |
| |
| // Interface for dispatching events. |
| std::unique_ptr<DeviceEventDispatcherEvdev> dispatcher_; |
| |
| DISALLOW_COPY_AND_ASSIGN(InputInjectorEvdev); |
| }; |
| |
| } // namespace ui |
| |
| #endif // UI_EVENTS_OZONE_EVDEV_INPUT_INJECTOR_EVDEV_H_ |
| |