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

Unified Diff: ui/base/touch/multi_touch_device.h

Issue 9773024: This patch implements Chromium's Aura gesture recognizer in terms of utouch-grail and utouch-frame … (Closed) Base URL: https://src.chromium.org/svn/trunk/src/
Patch Set: Created 8 years, 8 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/base/touch/axis.cc ('k') | ui/base/touch/multi_touch_device.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/base/touch/multi_touch_device.h
===================================================================
--- ui/base/touch/multi_touch_device.h (revision 0)
+++ ui/base/touch/multi_touch_device.h (revision 0)
@@ -0,0 +1,114 @@
+// Copyright (c) 2012 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_BASE_TOUCH_MULTI_TOUCH_DEVICE_H_
+#define UI_BASE_TOUCH_MULTI_TOUCH_DEVICE_H_
+#pragma once
+
+#include <map>
+#include <string>
+
+#include "base/basictypes.h"
+#include "ui/base/touch/axis.h"
+
+namespace ui {
+// Models a multi-touch capable device and its properties.
+class MultiTouchDevice {
+ public:
+ typedef std::map<Axis::Type, Axis> Axes;
+
+ // Models different touch device types.
+ enum Type {
+ // A device with 1:1 mapping to screen coords, e.g., a touchscreen.
+ // In contrast, an indirect touch device would require a coordinate
+ // transformation to map touch coordinates to screen coordinates.
+ DIRECT_TOUCH_DEVICE_TYPE,
+ // Marks an indirect device with cursor movement dependent on touches.
+ // Example: A trackpad.
+ DEPENDENT_TOUCH_DEVICE_TYPE,
+ // Marks an indirect device with cursor movement independent of touches.
+ // Example: A mouse with an additional touch area.
+ INDEPENDENT_TOUCH_DEVICE_TYPE,
+ // Marks a device that provides a bounding-box of some touches.
+ // In contrast, a full-multitouch device provides accurate locations
+ // of individual touches.
+ SEMI_MULTI_TOUCH_DEVICE_TYPE,
+ // Marks the initial and unknown type of a device.
+ UNKNOWN_TOUCH_DEVICE_TYPE
+ };
+
+ // Initializes the object to a default, undefined state.
+ MultiTouchDevice();
+
+ ~MultiTouchDevice();
+
+ // Compiler generated copy-c'tor and assignment operator are fine.
+
+ // Returns the unique id of the device.
+ int id() const { return id_; }
+ // Adjusts the id of the device to id.
+ void set_id(int id) { id_ = id; }
+
+ // Returns the human-readable name of the device.
+ const std::string & name() const { return name_; }
+ // Adjusts the human-readable name of the device.
+ void set_name(const std::string& name) { name_ = name; }
+
+ // Returns the type of the device.
+ Type type() const { return type_; }
+ // Adjusts the type of the device.
+ void set_type(Type type) { type_ = type; }
+
+ // Returns the maximum number of touches that this device can
+ // report simultaneously.
+ uint32_t max_num_touches() const { return max_num_touches_; }
+ // Adjusts the maximum number of touches that this device can
+ // report simultaneously.
+ void set_max_num_touches(uint32_t num) { max_num_touches_ = num; }
+
+ // Returns the number of axes that this device supports.
+ // Here, an axis models a property/measurement that is associated
+ // with individual touches.
+ uint32_t num_axes() const { return axes_.size(); }
+
+ // Returns the map of axis objects supported by this device.
+ const Axes & axes() const { return axes_; }
+ // Adjusts the map of axis.
+ void set_axes(const Axes & axes) { axes_ = axes; }
+
+ // Returns the resolution of the window coordinates
+ // of the device in the X axis
+ float window_resolution_x() const { return window_resolution_x_; }
+ // Adjusts the resolution of the window coordintaes
+ // of the device in the X axis.
+ void set_window_resolution_x(float res) { window_resolution_x_ = res; }
+
+ // Returns the resolution of the window coordinates
+ // of the device in the Y axis
+ float window_resolution_y() const { return window_resolution_y_; }
+ // Returns the resolution of the window coordinates
+ // of the device in the Y axis
+ void set_window_resolution_y(float res) { window_resolution_y_ = res; }
+
+ private:
+ int id_;
+ std::string name_;
+ Type type_;
+ uint32_t max_num_touches_;
+ Axes axes_;
+ float window_resolution_x_;
+ float window_resolution_y_;
+
+ // REMARK(tvoss): Consider handling of devices to rely on shared ptr's.
+ // A device might be considered unique and non-copyable and non-assignable
+ // in the future. However, at the present moment, it is perfectly fine to
+ // model the device as copyable and assignable as it only wraps up various
+ // device properties.
+ // DISALLOW_COPY_AND_ASSIGN(MultiTouchDevice);
+};
+
+} // namespace ui
+
+#endif // UI_BASE_TOUCH_MULTI_TOUCH_DEVICE_H_
+
Property changes on: ui/base/touch/multi_touch_device.h
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « ui/base/touch/axis.cc ('k') | ui/base/touch/multi_touch_device.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698