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

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

Issue 868213002: [PATCH 7/11] ozone: evdev: Move GesturePropertyProvider to InputDeviceFactoryEvdev (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updates for events_unittests Created 5 years, 11 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
« no previous file with comments | « ui/events/ozone/evdev/input_device_factory_evdev.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/ozone/evdev/input_device_factory_evdev.cc
diff --git a/ui/events/ozone/evdev/input_device_factory_evdev.cc b/ui/events/ozone/evdev/input_device_factory_evdev.cc
index 3fea5ecbf1fa283060b78b29c3d3e870364fd833..508e4fb03111aa2b2fa7e602e953d73a13f8b74e 100644
--- a/ui/events/ozone/evdev/input_device_factory_evdev.cc
+++ b/ui/events/ozone/evdev/input_device_factory_evdev.cc
@@ -62,6 +62,28 @@ bool UseGesturesLibraryForDevice(const EventDeviceInfo& devinfo) {
return false;
}
+
+void SetGestureIntProperty(GesturePropertyProvider* provider,
+ int id,
+ const std::string& name,
+ int value) {
+ GesturesProp* property = provider->GetProperty(id, name);
+ if (property) {
+ std::vector<int> values(1, value);
+ property->SetIntValue(values);
+ }
+}
+
+void SetGestureBoolProperty(GesturePropertyProvider* provider,
+ int id,
+ const std::string& name,
+ bool value) {
+ GesturesProp* property = provider->GetProperty(id, name);
+ if (property) {
+ std::vector<bool> values(1, value);
+ property->SetBoolValue(values);
+ }
+}
#endif
scoped_ptr<EventConverterEvdev> CreateConverter(
@@ -159,9 +181,6 @@ void CloseInputDevice(const base::FilePath& path,
InputDeviceFactoryEvdev::InputDeviceFactoryEvdev(
DeviceEventDispatcherEvdev* dispatcher,
scoped_refptr<base::SingleThreadTaskRunner> dispatch_runner,
-#if defined(USE_EVDEV_GESTURES)
- GesturePropertyProvider* gesture_property_provider,
alexst (slow to review) 2015/01/27 20:25:28 So this is never used and created anew below, one
-#endif
CursorDelegateEvdev* cursor)
: ui_task_runner_(dispatch_runner),
cursor_(cursor),
@@ -185,7 +204,7 @@ void InputDeviceFactoryEvdev::AddInputDevice(int id,
params->dispatcher = dispatcher_;
#if defined(USE_EVDEV_GESTURES)
- params->gesture_property_provider = gesture_property_provider_;
+ params->gesture_property_provider = gesture_property_provider_.get();
#endif
OpenInputDeviceReplyCallback reply_callback =
@@ -287,6 +306,45 @@ void InputDeviceFactoryEvdev::EnableInternalKeyboard() {
}
}
+bool InputDeviceFactoryEvdev::HasMouse() {
+ return GetDeviceIdsByType(DT_MOUSE, NULL);
+}
+
+bool InputDeviceFactoryEvdev::HasTouchpad() {
+ return GetDeviceIdsByType(DT_TOUCHPAD, NULL);
+}
+
+void InputDeviceFactoryEvdev::SetTouchpadSensitivity(int value) {
+ SetIntPropertyForOneType(DT_TOUCHPAD, "Pointer Sensitivity", value);
+ SetIntPropertyForOneType(DT_TOUCHPAD, "Scroll Sensitivity", value);
+}
+
+void InputDeviceFactoryEvdev::SetTapToClick(bool enabled) {
+ SetBoolPropertyForOneType(DT_TOUCHPAD, "Tap Enable", enabled);
+}
+
+void InputDeviceFactoryEvdev::SetThreeFingerClick(bool enabled) {
+ SetBoolPropertyForOneType(DT_TOUCHPAD, "T5R2 Three Finger Click Enable",
+ enabled);
+}
+
+void InputDeviceFactoryEvdev::SetTapDragging(bool enabled) {
+ SetBoolPropertyForOneType(DT_TOUCHPAD, "Tap Drag Enable", enabled);
+}
+
+void InputDeviceFactoryEvdev::SetNaturalScroll(bool enabled) {
+ SetBoolPropertyForOneType(DT_MULTITOUCH, "Australian Scrolling", enabled);
+}
+
+void InputDeviceFactoryEvdev::SetMouseSensitivity(int value) {
+ SetIntPropertyForOneType(DT_MOUSE, "Pointer Sensitivity", value);
+ SetIntPropertyForOneType(DT_MOUSE, "Scroll Sensitivity", value);
+}
+
+void InputDeviceFactoryEvdev::SetTapToClickPaused(bool state) {
+ SetBoolPropertyForOneType(DT_TOUCHPAD, "Tap Paused", state);
+}
+
void InputDeviceFactoryEvdev::NotifyDeviceChange(
const EventConverterEvdev& converter) {
if (converter.HasTouchscreen())
@@ -343,4 +401,35 @@ bool InputDeviceFactoryEvdev::GetDeviceIdsByType(const EventDeviceType type,
return !ids.empty();
}
+void InputDeviceFactoryEvdev::SetIntPropertyForOneType(
+ const EventDeviceType type,
+ const std::string& name,
+ int value) {
+#if defined(USE_EVDEV_GESTURES)
+ std::vector<int> ids;
+ gesture_property_provider_->GetDeviceIdsByType(type, &ids);
+ for (size_t i = 0; i < ids.size(); ++i) {
+ SetGestureIntProperty(gesture_property_provider_.get(), ids[i], name,
+ value);
+ }
+#endif
+ // In the future, we may add property setting codes for other non-gesture
+ // devices. One example would be keyboard settings.
+ // TODO(sheckylin): See http://crbug.com/398518 for example.
+}
+
+void InputDeviceFactoryEvdev::SetBoolPropertyForOneType(
+ const EventDeviceType type,
+ const std::string& name,
+ bool value) {
+#if defined(USE_EVDEV_GESTURES)
+ std::vector<int> ids;
+ gesture_property_provider_->GetDeviceIdsByType(type, &ids);
+ for (size_t i = 0; i < ids.size(); ++i) {
+ SetGestureBoolProperty(gesture_property_provider_.get(), ids[i], name,
+ value);
+ }
+#endif
+}
+
} // namespace ui
« no previous file with comments | « ui/events/ozone/evdev/input_device_factory_evdev.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698