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

Side by Side Diff: ui/events/x/device_data_manager.h

Issue 52823002: x11: Move XInput2 availability information out of the message pump. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/events/events.gyp ('k') | ui/events/x/device_data_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef UI_EVENTS_X_DEVICE_DATA_MANAGER_H_ 5 #ifndef UI_EVENTS_X_DEVICE_DATA_MANAGER_H_
6 #define UI_EVENTS_X_DEVICE_DATA_MANAGER_H_ 6 #define UI_EVENTS_X_DEVICE_DATA_MANAGER_H_
7 7
8 #include <X11/extensions/XInput2.h> 8 #include <X11/extensions/XInput2.h>
9 9
10 #include <bitset> 10 #include <bitset>
11 #include <map> 11 #include <map>
12 #include <vector> 12 #include <vector>
13 13
14 #include "base/basictypes.h" 14 #include "base/basictypes.h"
15 #include "base/event_types.h" 15 #include "base/event_types.h"
16 #include "ui/events/event_constants.h" 16 #include "ui/events/event_constants.h"
17 #include "ui/events/events_export.h" 17 #include "ui/events/events_base_export.h"
18 #include "ui/gfx/x/x11_atom_cache.h" 18 #include "ui/gfx/x/x11_atom_cache.h"
19 19
20 template <typename T> struct DefaultSingletonTraits; 20 template <typename T> struct DefaultSingletonTraits;
21 21
22 typedef union _XEvent XEvent; 22 typedef union _XEvent XEvent;
23 23
24 namespace ui { 24 namespace ui {
25 25
26 // CrOS touchpad metrics gesture types 26 // CrOS touchpad metrics gesture types
27 enum GestureMetricsType { 27 enum GestureMetricsType {
28 kGestureMetricsTypeNoisyGround = 0, 28 kGestureMetricsTypeNoisyGround = 0,
29 kGestureMetricsTypeUnknown, 29 kGestureMetricsTypeUnknown,
30 }; 30 };
31 31
32 // A class that extracts and tracks the input events data. It currently handles 32 // A class that extracts and tracks the input events data. It currently handles
33 // mouse, touchpad and touchscreen devices. 33 // mouse, touchpad and touchscreen devices.
34 class EVENTS_EXPORT DeviceDataManager { 34 class EVENTS_BASE_EXPORT DeviceDataManager {
35 public: 35 public:
36 // Enumerate additional data that one might be interested on an input event, 36 // Enumerate additional data that one might be interested on an input event,
37 // which are usually wrapped in X valuators. If you modify any of this, 37 // which are usually wrapped in X valuators. If you modify any of this,
38 // make sure to update the kCachedAtoms data structure in the source file 38 // make sure to update the kCachedAtoms data structure in the source file
39 // and the k*Type[Start/End] constants used by IsCMTDataType and 39 // and the k*Type[Start/End] constants used by IsCMTDataType and
40 // IsTouchDataType. 40 // IsTouchDataType.
41 enum DataType { 41 enum DataType {
42 // Define the valuators used the CrOS CMT driver. Used by mice and CrOS 42 // Define the valuators used the CrOS CMT driver. Used by mice and CrOS
43 // touchpads. 43 // touchpads.
44 DT_CMT_SCROLL_X = 0, // Scroll amount on the X (horizontal) direction. 44 DT_CMT_SCROLL_X = 0, // Scroll amount on the X (horizontal) direction.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 96
97 // Returns the DeviceDataManager singleton. 97 // Returns the DeviceDataManager singleton.
98 static DeviceDataManager* GetInstance(); 98 static DeviceDataManager* GetInstance();
99 99
100 // Natural scroll setter/getter. 100 // Natural scroll setter/getter.
101 bool natural_scroll_enabled() const { return natural_scroll_enabled_; } 101 bool natural_scroll_enabled() const { return natural_scroll_enabled_; }
102 void set_natural_scroll_enabled(bool enabled) { 102 void set_natural_scroll_enabled(bool enabled) {
103 natural_scroll_enabled_ = enabled; 103 natural_scroll_enabled_ = enabled;
104 } 104 }
105 105
106 // Returns if XInput2 is available on the system.
107 bool IsXInput2Available() const;
108
106 // Get the natural scroll direction multiplier (1.0f or -1.0f). 109 // Get the natural scroll direction multiplier (1.0f or -1.0f).
107 float GetNaturalScrollFactor(int sourceid) const; 110 float GetNaturalScrollFactor(int sourceid) const;
108 111
109 // Updates the list of devices. 112 // Updates the list of devices.
110 void UpdateDeviceList(Display* display); 113 void UpdateDeviceList(Display* display);
111 114
112 // For multitouch events we use slot number to distinguish touches from 115 // For multitouch events we use slot number to distinguish touches from
113 // different fingers. This function returns true if the associated slot 116 // different fingers. This function returns true if the associated slot
114 // for |xiev| can be found and it is saved in |slot|, returns false if 117 // for |xiev| can be found and it is saved in |slot|, returns false if
115 // no slot can be found. 118 // no slot can be found.
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 281
279 unsigned char button_map_[256]; 282 unsigned char button_map_[256];
280 int button_map_count_; 283 int button_map_count_;
281 284
282 DISALLOW_COPY_AND_ASSIGN(DeviceDataManager); 285 DISALLOW_COPY_AND_ASSIGN(DeviceDataManager);
283 }; 286 };
284 287
285 } // namespace ui 288 } // namespace ui
286 289
287 #endif // UI_EVENTS_X_DEVICE_DATA_MANAGER_H_ 290 #endif // UI_EVENTS_X_DEVICE_DATA_MANAGER_H_
OLDNEW
« no previous file with comments | « ui/events/events.gyp ('k') | ui/events/x/device_data_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698