Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(872)

Unified Diff: ui/events/ozone/evdev/input_injector_evdev.cc

Issue 1287103004: Sync ui/events to chromium @ https://codereview.chromium.org/1210203002 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebased Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/events/ozone/evdev/input_injector_evdev.cc
diff --git a/ui/events/ozone/evdev/input_injector_evdev.cc b/ui/events/ozone/evdev/input_injector_evdev.cc
new file mode 100644
index 0000000000000000000000000000000000000000..7c37fe921075723e89e068939de9f1d22f520f1f
--- /dev/null
+++ b/ui/events/ozone/evdev/input_injector_evdev.cc
@@ -0,0 +1,84 @@
+// 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.
+
+#include "ui/events/event.h"
+#include "ui/events/event_utils.h"
+#include "ui/events/keycodes/dom/dom_code.h"
+#include "ui/events/ozone/evdev/cursor_delegate_evdev.h"
+#include "ui/events/ozone/evdev/device_event_dispatcher_evdev.h"
+#include "ui/events/ozone/evdev/event_modifiers_evdev.h"
+#include "ui/events/ozone/evdev/input_injector_evdev.h"
+#include "ui/events/ozone/evdev/keyboard_evdev.h"
+#include "ui/events/ozone/evdev/keyboard_util_evdev.h"
+
+namespace ui {
+
+namespace {
+
+const int kDeviceIdForInjection = -1;
+
+} // namespace
+
+InputInjectorEvdev::InputInjectorEvdev(
+ scoped_ptr<DeviceEventDispatcherEvdev> dispatcher,
+ CursorDelegateEvdev* cursor)
+ : cursor_(cursor), dispatcher_(dispatcher.Pass()) {
+}
+
+InputInjectorEvdev::~InputInjectorEvdev() {
+}
+
+void InputInjectorEvdev::InjectMouseButton(EventFlags button, bool down) {
+ unsigned int code;
+ switch (button) {
+ case EF_LEFT_MOUSE_BUTTON:
+ code = BTN_LEFT;
+ break;
+ case EF_RIGHT_MOUSE_BUTTON:
+ code = BTN_RIGHT;
+ break;
+ case EF_MIDDLE_MOUSE_BUTTON:
+ code = BTN_MIDDLE;
+ default:
+ LOG(WARNING) << "Invalid flag: " << button << " for the button parameter";
+ return;
+ }
+
+ dispatcher_->DispatchMouseButtonEvent(MouseButtonEventParams(
+ kDeviceIdForInjection, cursor_->GetLocation(), code, down,
+ false /* allow_remap */, EventTimeForNow()));
+}
+
+void InputInjectorEvdev::InjectMouseWheel(int delta_x, int delta_y) {
+ dispatcher_->DispatchMouseWheelEvent(MouseWheelEventParams(
+ kDeviceIdForInjection, cursor_->GetLocation(),
+ gfx::Vector2d(delta_x, delta_y), EventTimeForNow()));
+}
+
+void InputInjectorEvdev::MoveCursorTo(const gfx::PointF& location) {
+ if (!cursor_)
+ return;
+
+ cursor_->MoveCursorTo(location);
+
+ dispatcher_->DispatchMouseMoveEvent(MouseMoveEventParams(
+ kDeviceIdForInjection, cursor_->GetLocation(), EventTimeForNow()));
+}
+
+void InputInjectorEvdev::InjectKeyEvent(DomCode physical_key,
+ bool down,
+ bool suppress_auto_repeat) {
+ if (physical_key == DomCode::NONE)
+ return;
+
+ int native_keycode = KeycodeConverter::DomCodeToNativeKeycode(physical_key);
+ int evdev_code = NativeCodeToEvdevCode(native_keycode);
+
+ dispatcher_->DispatchKeyEvent(
+ KeyEventParams(kDeviceIdForInjection, evdev_code, down,
+ suppress_auto_repeat, EventTimeForNow()));
+}
+
+} // namespace ui
+
« no previous file with comments | « ui/events/ozone/evdev/input_injector_evdev.h ('k') | ui/events/ozone/evdev/input_injector_evdev_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698