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

Side by Side Diff: ui/base/events/event.h

Issue 12087124: Disable touch calibration on external touchscreen. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Review + Rebase on top of 12321086 Created 7 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_BASE_EVENTS_EVENT_H_ 5 #ifndef UI_BASE_EVENTS_EVENT_H_
6 #define UI_BASE_EVENTS_EVENT_H_ 6 #define UI_BASE_EVENTS_EVENT_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/event_types.h" 10 #include "base/event_types.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/memory/singleton.h"
12 #include "base/time.h" 13 #include "base/time.h"
13 #include "ui/base/dragdrop/os_exchange_data.h" 14 #include "ui/base/dragdrop/os_exchange_data.h"
14 #include "ui/base/events/event_constants.h" 15 #include "ui/base/events/event_constants.h"
15 #include "ui/base/gestures/gesture_types.h" 16 #include "ui/base/gestures/gesture_types.h"
16 #include "ui/base/keycodes/keyboard_codes.h" 17 #include "ui/base/keycodes/keyboard_codes.h"
17 #include "ui/base/ui_export.h" 18 #include "ui/base/ui_export.h"
18 #include "ui/gfx/point.h" 19 #include "ui/gfx/point.h"
19 20
20 namespace gfx { 21 namespace gfx {
21 class Transform; 22 class Transform;
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 // The amount to scroll. This is in multiples of kWheelDelta. 438 // The amount to scroll. This is in multiples of kWheelDelta.
438 // Note: offset() > 0 means scroll up / left. 439 // Note: offset() > 0 means scroll up / left.
439 int offset() const { return offset_; } 440 int offset() const { return offset_; }
440 441
441 private: 442 private:
442 int offset_; 443 int offset_;
443 444
444 DISALLOW_COPY_AND_ASSIGN(MouseWheelEvent); 445 DISALLOW_COPY_AND_ASSIGN(MouseWheelEvent);
445 }; 446 };
446 447
448 #if defined(USE_XI2_MT)
449 // A singleton, which reads touch event calibration parameters
450 // from the command line once - in constructor.
451 // These parameters are then used in Calibrate() to compensate
452 // for the bezels on the internal touchscreen.
453 class TouchCoordinatesCalibrator {
454 public:
oshima 2013/03/14 01:23:27 indent
ynovikov 2013/03/14 20:27:04 Done.
455 static TouchCoordinatesCalibrator* GetInstance();
456 // Modify the location of the |event|,
457 // expanding it from |bounds| to (|bounds| + bezels).
458 // Required when touchscreen is bigger than screen (i.e. has bezels),
459 // because we receive events in touchscreen coordinates,
460 // which needs to be expanded when converting to screen coordinates,
461 // so that location on bezels will be outside of screen area.
462 void Calibrate(TouchEvent* event, const gfx::Rect& bounds);
463 private:
oshima 2013/03/14 01:23:27 indent
ynovikov 2013/03/14 20:27:04 Done.
464 TouchCoordinatesCalibrator();
465 friend struct DefaultSingletonTraits<TouchCoordinatesCalibrator>;
466
467 // The (positive) calibration values for the four border sides.
468 int left_;
469 int right_;
470 int top_;
471 int bottom_;
472
473 DISALLOW_COPY_AND_ASSIGN(TouchCoordinatesCalibrator);
474 };
475 #endif
476
447 class UI_EXPORT TouchEvent : public LocatedEvent { 477 class UI_EXPORT TouchEvent : public LocatedEvent {
448 public: 478 public:
449 explicit TouchEvent(const base::NativeEvent& native_event); 479 explicit TouchEvent(const base::NativeEvent& native_event);
450 480
451 // Create a new TouchEvent which is identical to the provided model. 481 // Create a new TouchEvent which is identical to the provided model.
452 // If source / target windows are provided, the model location will be 482 // If source / target windows are provided, the model location will be
453 // converted from |source| coordinate system to |target| coordinate system. 483 // converted from |source| coordinate system to |target| coordinate system.
454 template <class T> 484 template <class T>
455 TouchEvent(const TouchEvent& model, T* source, T* target) 485 TouchEvent(const TouchEvent& model, T* source, T* target)
456 : LocatedEvent(model, source, target), 486 : LocatedEvent(model, source, target),
(...skipping 25 matching lines...) Expand all
482 float radius_x() const { return radius_x_; } 512 float radius_x() const { return radius_x_; }
483 float radius_y() const { return radius_y_; } 513 float radius_y() const { return radius_y_; }
484 float rotation_angle() const { return rotation_angle_; } 514 float rotation_angle() const { return rotation_angle_; }
485 float force() const { return force_; } 515 float force() const { return force_; }
486 516
487 // Relocate the touch-point to a new |origin|. 517 // Relocate the touch-point to a new |origin|.
488 // This is useful when touch event is in X Root Window coordinates, 518 // This is useful when touch event is in X Root Window coordinates,
489 // and it needs to be mapped into Aura Root Window coordinates. 519 // and it needs to be mapped into Aura Root Window coordinates.
490 void Relocate(const gfx::Point& origin); 520 void Relocate(const gfx::Point& origin);
491 521
522 #if defined(USE_XI2_MT)
523 // Apply bezels calibration, given |bounds| screen size,
524 // and bezel sizes previously read from command line.
525 void Calibrate(const gfx::Rect& bounds);
526 #endif
527
492 // Used for unit tests. 528 // Used for unit tests.
493 void set_radius_x(const float r) { radius_x_ = r; } 529 void set_radius_x(const float r) { radius_x_ = r; }
494 void set_radius_y(const float r) { radius_y_ = r; } 530 void set_radius_y(const float r) { radius_y_ = r; }
495 531
496 // Overridden from LocatedEvent. 532 // Overridden from LocatedEvent.
497 virtual void UpdateForRootTransform( 533 virtual void UpdateForRootTransform(
498 const gfx::Transform& root_transform) OVERRIDE; 534 const gfx::Transform& root_transform) OVERRIDE;
499 535
500 protected: 536 protected:
501 void set_radius(float radius_x, float radius_y) { 537 void set_radius(float radius_x, float radius_y) {
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 // This value is stored as a bitfield because the number of touch ids varies, 746 // This value is stored as a bitfield because the number of touch ids varies,
711 // but we currently don't need more than 32 touches at a time. 747 // but we currently don't need more than 32 touches at a time.
712 const unsigned int touch_ids_bitfield_; 748 const unsigned int touch_ids_bitfield_;
713 749
714 DISALLOW_COPY_AND_ASSIGN(GestureEvent); 750 DISALLOW_COPY_AND_ASSIGN(GestureEvent);
715 }; 751 };
716 752
717 } // namespace ui 753 } // namespace ui
718 754
719 #endif // UI_BASE_EVENTS_EVENT_H_ 755 #endif // UI_BASE_EVENTS_EVENT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698