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

Unified Diff: ui/events/x/touch_factory_x11.h

Issue 685793002: Move all event related devices from ui/events/ to ui/events/devices/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@internal-touchscreens
Patch Set: fix ozone Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/events/x/hotplug_event_handler_x11.cc ('k') | ui/events/x/touch_factory_x11.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/x/touch_factory_x11.h
diff --git a/ui/events/x/touch_factory_x11.h b/ui/events/x/touch_factory_x11.h
deleted file mode 100644
index 69eee71e17f66b0084f8f042eeb8750ec6993da6..0000000000000000000000000000000000000000
--- a/ui/events/x/touch_factory_x11.h
+++ /dev/null
@@ -1,156 +0,0 @@
-// 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_EVENTS_X_TOUCH_FACTORY_X11_H_
-#define UI_EVENTS_X_TOUCH_FACTORY_X11_H_
-
-#include <bitset>
-#include <map>
-#include <set>
-#include <utility>
-#include <vector>
-
-#include "ui/events/events_base_export.h"
-#include "ui/gfx/sequential_id_generator.h"
-
-template <typename T> struct DefaultSingletonTraits;
-
-typedef unsigned long Cursor;
-typedef unsigned long Window;
-typedef struct _XDisplay Display;
-typedef union _XEvent XEvent;
-
-namespace ui {
-
-// Functions related to determining touch devices.
-class EVENTS_BASE_EXPORT TouchFactory {
- private:
- TouchFactory();
- ~TouchFactory();
-
- public:
- // Returns the TouchFactory singleton.
- static TouchFactory* GetInstance();
-
- // Sets the touch devices from the command line.
- static void SetTouchDeviceListFromCommandLine();
-
- // Updates the list of devices.
- void UpdateDeviceList(Display* display);
-
- // Checks whether an XI2 event should be processed or not (i.e. if the event
- // originated from a device we are interested in).
- bool ShouldProcessXI2Event(XEvent* xevent);
-
- // Setup an X Window for XInput2 events.
- void SetupXI2ForXWindow(::Window xid);
-
- // Keeps a list of touch devices so that it is possible to determine if a
- // pointer event is a touch-event or a mouse-event. The list is reset each
- // time this is called.
- void SetTouchDeviceList(const std::vector<unsigned int>& devices);
-
- // Is the device a touch-device?
- bool IsTouchDevice(unsigned int deviceid) const;
-
- // Is the device a real multi-touch-device? (see doc. for |touch_device_list_|
- // below for more explanation.)
- bool IsMultiTouchDevice(unsigned int deviceid) const;
-
- // Tries to find an existing slot ID mapping to tracking ID. Returns true
- // if the slot is found and it is saved in |slot|, false if no such slot
- // can be found.
- bool QuerySlotForTrackingID(uint32 tracking_id, int* slot);
-
- // Tries to find an existing slot ID mapping to tracking ID. If there
- // isn't one already, allocates a new slot ID and sets up the mapping.
- int GetSlotForTrackingID(uint32 tracking_id);
-
- // Increases the number of times |ReleaseSlotForTrackingID| needs to be called
- // on a given tracking id before it will actually be released.
- void AcquireSlotForTrackingID(uint32 tracking_id);
-
- // Releases the slot ID mapping to tracking ID.
- void ReleaseSlotForTrackingID(uint32 tracking_id);
-
- // Whether any touch device is currently present and enabled.
- bool IsTouchDevicePresent();
-
- // Pairs of <vendor id, product id> of external touch screens.
- const std::set<std::pair<int, int> >& GetTouchscreenIds() const {
- return touchscreen_ids_;
- }
-
- // Return maximum simultaneous touch points supported by device.
- int GetMaxTouchPoints() const;
-
- // Resets the TouchFactory singleton.
- void ResetForTest();
-
- // Sets up the device id in the list |devices| as multi-touch capable
- // devices and enables touch events processing. This function is only
- // for test purpose, and it does not query from X server.
- void SetTouchDeviceForTest(const std::vector<unsigned int>& devices);
-
- // Sets up the device id in the list |devices| as pointer devices.
- // This function is only for test purpose, and it does not query from
- // X server.
- void SetPointerDeviceForTest(const std::vector<unsigned int>& devices);
-
- private:
- // Requirement for Singleton
- friend struct DefaultSingletonTraits<TouchFactory>;
-
- void CacheTouchscreenIds(Display* display, int id);
-
- // NOTE: To keep track of touch devices, we currently maintain a lookup table
- // to quickly decide if a device is a touch device or not. We also maintain a
- // list of the touch devices. Ideally, there will be only one touch device,
- // and instead of having the lookup table and the list, there will be a single
- // identifier for the touch device. This can be completed after enough testing
- // on real touch devices.
-
- static const int kMaxDeviceNum = 128;
-
- // A quick lookup table for determining if events from the pointer device
- // should be processed.
- std::bitset<kMaxDeviceNum> pointer_device_lookup_;
-
- // A quick lookup table for determining if a device is a touch device.
- std::bitset<kMaxDeviceNum> touch_device_lookup_;
-
- // Indicates whether touch events are explicitly disabled.
- bool touch_events_disabled_;
-
- // The list of touch devices. For testing/debugging purposes, a single-pointer
- // device (mouse or touch screen without sufficient X/driver support for MT)
- // can sometimes be treated as a touch device. The key in the map represents
- // the device id, and the value represents if the device is multi-touch
- // capable.
- std::map<int, bool> touch_device_list_;
-
- // Touch screen <vid, pid>s.
- std::set<std::pair<int, int> > touchscreen_ids_;
-
- // Maps from a tracking id to the number of times |ReleaseSlotForTrackingID|
- // must be called before the tracking id is released.
- std::map<uint32, int> tracking_id_refcounts_;
-
- // Maximum simultaneous touch points supported by device. In the case of
- // devices with multiple digitizers (e.g. multiple touchscreens), the value
- // is the maximum of the set of maximum supported contacts by each individual
- // digitizer.
- int max_touch_points_;
-
- // Device ID of the virtual core keyboard.
- int virtual_core_keyboard_device_;
-
- SequentialIDGenerator id_generator_;
-
- DISALLOW_COPY_AND_ASSIGN(TouchFactory);
-};
-
-} // namespace ui
-
-#endif // UI_EVENTS_X_TOUCH_FACTORY_X11_H_
« no previous file with comments | « ui/events/x/hotplug_event_handler_x11.cc ('k') | ui/events/x/touch_factory_x11.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698