Chromium Code Reviews| Index: ui/base/events/event.h |
| diff --git a/ui/base/events/event.h b/ui/base/events/event.h |
| index b29d1ede253cf1fea02b9ebd1e6f52c774f242e7..2188e75f1ffd097de08350de8fbef483a457df33 100644 |
| --- a/ui/base/events/event.h |
| +++ b/ui/base/events/event.h |
| @@ -9,6 +9,7 @@ |
| #include "base/compiler_specific.h" |
| #include "base/event_types.h" |
| #include "base/logging.h" |
| +#include "base/memory/singleton.h" |
| #include "base/time.h" |
| #include "ui/base/dragdrop/os_exchange_data.h" |
| #include "ui/base/events/event_constants.h" |
| @@ -444,6 +445,35 @@ class UI_EXPORT MouseWheelEvent : public MouseEvent { |
| DISALLOW_COPY_AND_ASSIGN(MouseWheelEvent); |
| }; |
| +#if defined(USE_XI2_MT) |
| +// A singleton, which reads touch event calibration parameters |
| +// from the command line once - in constructor. |
| +// These parameters are then used in Calibrate() to compensate |
| +// for the bezels on the internal touchscreen. |
| +class TouchCoordinatesCalibrator { |
| +public: |
|
oshima
2013/03/14 01:23:27
indent
ynovikov
2013/03/14 20:27:04
Done.
|
| + static TouchCoordinatesCalibrator* GetInstance(); |
| + // Modify the location of the |event|, |
| + // expanding it from |bounds| to (|bounds| + bezels). |
| + // Required when touchscreen is bigger than screen (i.e. has bezels), |
| + // because we receive events in touchscreen coordinates, |
| + // which needs to be expanded when converting to screen coordinates, |
| + // so that location on bezels will be outside of screen area. |
| + void Calibrate(TouchEvent* event, const gfx::Rect& bounds); |
| +private: |
|
oshima
2013/03/14 01:23:27
indent
ynovikov
2013/03/14 20:27:04
Done.
|
| + TouchCoordinatesCalibrator(); |
| + friend struct DefaultSingletonTraits<TouchCoordinatesCalibrator>; |
| + |
| + // The (positive) calibration values for the four border sides. |
| + int left_; |
| + int right_; |
| + int top_; |
| + int bottom_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(TouchCoordinatesCalibrator); |
| +}; |
| +#endif |
| + |
| class UI_EXPORT TouchEvent : public LocatedEvent { |
| public: |
| explicit TouchEvent(const base::NativeEvent& native_event); |
| @@ -489,6 +519,12 @@ class UI_EXPORT TouchEvent : public LocatedEvent { |
| // and it needs to be mapped into Aura Root Window coordinates. |
| void Relocate(const gfx::Point& origin); |
| +#if defined(USE_XI2_MT) |
| + // Apply bezels calibration, given |bounds| screen size, |
| + // and bezel sizes previously read from command line. |
| + void Calibrate(const gfx::Rect& bounds); |
| +#endif |
| + |
| // Used for unit tests. |
| void set_radius_x(const float r) { radius_x_ = r; } |
| void set_radius_y(const float r) { radius_y_ = r; } |