| 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_
|
|
|