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

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

Issue 336403005: Use XInput2 events for keyboard events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments (sadrul) 3 Created 6 years, 5 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
« no previous file with comments | « ui/aura/window_tree_host_x11.cc ('k') | ui/events/event.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 (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_EVENTS_EVENT_H_ 5 #ifndef UI_EVENTS_EVENT_H_
6 #define UI_EVENTS_EVENT_H_ 6 #define UI_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"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 void set_flags(int flags) { flags_ = flags; } 61 void set_flags(int flags) { flags_ = flags; }
62 62
63 EventTarget* target() const { return target_; } 63 EventTarget* target() const { return target_; }
64 EventPhase phase() const { return phase_; } 64 EventPhase phase() const { return phase_; }
65 EventResult result() const { return result_; } 65 EventResult result() const { return result_; }
66 66
67 LatencyInfo* latency() { return &latency_; } 67 LatencyInfo* latency() { return &latency_; }
68 const LatencyInfo* latency() const { return &latency_; } 68 const LatencyInfo* latency() const { return &latency_; }
69 void set_latency(const LatencyInfo& latency) { latency_ = latency; } 69 void set_latency(const LatencyInfo& latency) { latency_ = latency; }
70 70
71 int source_device_id() const { return source_device_id_; }
72
71 // By default, events are "cancelable", this means any default processing that 73 // By default, events are "cancelable", this means any default processing that
72 // the containing abstraction layer may perform can be prevented by calling 74 // the containing abstraction layer may perform can be prevented by calling
73 // SetHandled(). SetHandled() or StopPropagation() must not be called for 75 // SetHandled(). SetHandled() or StopPropagation() must not be called for
74 // events that are not cancelable. 76 // events that are not cancelable.
75 bool cancelable() const { return cancelable_; } 77 bool cancelable() const { return cancelable_; }
76 78
77 // The following methods return true if the respective keys were pressed at 79 // The following methods return true if the respective keys were pressed at
78 // the time the event was created. 80 // the time the event was created.
79 bool IsShiftDown() const { return (flags_ & EF_SHIFT_DOWN) != 0; } 81 bool IsShiftDown() const { return (flags_ & EF_SHIFT_DOWN) != 0; }
80 bool IsControlDown() const { return (flags_ & EF_CONTROL_DOWN) != 0; } 82 bool IsControlDown() const { return (flags_ & EF_CONTROL_DOWN) != 0; }
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 std::string name_; 225 std::string name_;
224 base::TimeDelta time_stamp_; 226 base::TimeDelta time_stamp_;
225 LatencyInfo latency_; 227 LatencyInfo latency_;
226 int flags_; 228 int flags_;
227 base::NativeEvent native_event_; 229 base::NativeEvent native_event_;
228 bool delete_native_event_; 230 bool delete_native_event_;
229 bool cancelable_; 231 bool cancelable_;
230 EventTarget* target_; 232 EventTarget* target_;
231 EventPhase phase_; 233 EventPhase phase_;
232 EventResult result_; 234 EventResult result_;
235
236 // The device id the event came from, or ED_UNKNOWN_DEVICE if the information
237 // is not available.
238 int source_device_id_;
233 }; 239 };
234 240
235 class EVENTS_EXPORT CancelModeEvent : public Event { 241 class EVENTS_EXPORT CancelModeEvent : public Event {
236 public: 242 public:
237 CancelModeEvent(); 243 CancelModeEvent();
238 virtual ~CancelModeEvent(); 244 virtual ~CancelModeEvent();
239 }; 245 };
240 246
241 class EVENTS_EXPORT LocatedEvent : public Event { 247 class EVENTS_EXPORT LocatedEvent : public Event {
242 public: 248 public:
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 387
382 // Set the click count for a mousedown message. Can be 1, 2 or 3. 388 // Set the click count for a mousedown message. Can be 1, 2 or 3.
383 void SetClickCount(int click_count); 389 void SetClickCount(int click_count);
384 390
385 // Identifies the button that changed. During a press this corresponds to the 391 // Identifies the button that changed. During a press this corresponds to the
386 // button that was pressed and during a release this corresponds to the button 392 // button that was pressed and during a release this corresponds to the button
387 // that was released. 393 // that was released.
388 // NOTE: during a press and release flags() contains the complete set of 394 // NOTE: during a press and release flags() contains the complete set of
389 // flags. Use this to determine the button that was pressed or released. 395 // flags. Use this to determine the button that was pressed or released.
390 int changed_button_flags() const { return changed_button_flags_; } 396 int changed_button_flags() const { return changed_button_flags_; }
397 void set_changed_button_flags(int flags) { changed_button_flags_ = flags; }
391 398
392 private: 399 private:
393 // Returns the repeat count based on the previous mouse click, if it is 400 // Returns the repeat count based on the previous mouse click, if it is
394 // recent enough and within a small enough distance. 401 // recent enough and within a small enough distance.
395 static int GetRepeatCount(const MouseEvent& click_event); 402 static int GetRepeatCount(const MouseEvent& click_event);
396 403
397 // See description above getter for details. 404 // See description above getter for details.
398 int changed_button_flags_; 405 int changed_button_flags_;
399 406
400 static MouseEvent* last_click_event_; 407 static MouseEvent* last_click_event_;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 // Create a new TouchEvent which is identical to the provided model. 455 // Create a new TouchEvent which is identical to the provided model.
449 // If source / target windows are provided, the model location will be 456 // If source / target windows are provided, the model location will be
450 // converted from |source| coordinate system to |target| coordinate system. 457 // converted from |source| coordinate system to |target| coordinate system.
451 template <class T> 458 template <class T>
452 TouchEvent(const TouchEvent& model, T* source, T* target) 459 TouchEvent(const TouchEvent& model, T* source, T* target)
453 : LocatedEvent(model, source, target), 460 : LocatedEvent(model, source, target),
454 touch_id_(model.touch_id_), 461 touch_id_(model.touch_id_),
455 radius_x_(model.radius_x_), 462 radius_x_(model.radius_x_),
456 radius_y_(model.radius_y_), 463 radius_y_(model.radius_y_),
457 rotation_angle_(model.rotation_angle_), 464 rotation_angle_(model.rotation_angle_),
458 force_(model.force_), 465 force_(model.force_) {
459 source_device_id_(model.source_device_id_) {
460 } 466 }
461 467
462 TouchEvent(EventType type, 468 TouchEvent(EventType type,
463 const gfx::PointF& location, 469 const gfx::PointF& location,
464 int touch_id, 470 int touch_id,
465 base::TimeDelta time_stamp); 471 base::TimeDelta time_stamp);
466 472
467 TouchEvent(EventType type, 473 TouchEvent(EventType type,
468 const gfx::PointF& location, 474 const gfx::PointF& location,
469 int flags, 475 int flags,
470 int touch_id, 476 int touch_id,
471 base::TimeDelta timestamp, 477 base::TimeDelta timestamp,
472 float radius_x, 478 float radius_x,
473 float radius_y, 479 float radius_y,
474 float angle, 480 float angle,
475 float force); 481 float force);
476 482
477 virtual ~TouchEvent(); 483 virtual ~TouchEvent();
478 484
479 int touch_id() const { return touch_id_; } 485 int touch_id() const { return touch_id_; }
480 float radius_x() const { return radius_x_; } 486 float radius_x() const { return radius_x_; }
481 float radius_y() const { return radius_y_; } 487 float radius_y() const { return radius_y_; }
482 float rotation_angle() const { return rotation_angle_; } 488 float rotation_angle() const { return rotation_angle_; }
483 float force() const { return force_; } 489 float force() const { return force_; }
484 int source_device_id() const { return source_device_id_; }
485 490
486 // Used for unit tests. 491 // Used for unit tests.
487 void set_radius_x(const float r) { radius_x_ = r; } 492 void set_radius_x(const float r) { radius_x_ = r; }
488 void set_radius_y(const float r) { radius_y_ = r; } 493 void set_radius_y(const float r) { radius_y_ = r; }
489 void set_source_device_id(int source_device_id) {
490 source_device_id_ = source_device_id;
491 }
492 494
493 // Overridden from LocatedEvent. 495 // Overridden from LocatedEvent.
494 virtual void UpdateForRootTransform( 496 virtual void UpdateForRootTransform(
495 const gfx::Transform& inverted_root_transform) OVERRIDE; 497 const gfx::Transform& inverted_root_transform) OVERRIDE;
496 498
497 protected: 499 protected:
498 void set_radius(float radius_x, float radius_y) { 500 void set_radius(float radius_x, float radius_y) {
499 radius_x_ = radius_x; 501 radius_x_ = radius_x;
500 radius_y_ = radius_y; 502 radius_y_ = radius_y;
501 } 503 }
(...skipping 13 matching lines...) Expand all
515 float radius_x_; 517 float radius_x_;
516 518
517 // Radius of the Y (minor) axis of the touch ellipse. 0.0 if unknown. 519 // Radius of the Y (minor) axis of the touch ellipse. 0.0 if unknown.
518 float radius_y_; 520 float radius_y_;
519 521
520 // Angle of the major axis away from the X axis. Default 0.0. 522 // Angle of the major axis away from the X axis. Default 0.0.
521 float rotation_angle_; 523 float rotation_angle_;
522 524
523 // Force (pressure) of the touch. Normalized to be [0, 1]. Default to be 0.0. 525 // Force (pressure) of the touch. Normalized to be [0, 1]. Default to be 0.0.
524 float force_; 526 float force_;
525
526 // The device id of the screen the event came from. Default to be -1.
527 int source_device_id_;
528 }; 527 };
529 528
530 class EVENTS_EXPORT KeyEvent : public Event { 529 class EVENTS_EXPORT KeyEvent : public Event {
531 public: 530 public:
532 KeyEvent(const base::NativeEvent& native_event, bool is_char); 531 KeyEvent(const base::NativeEvent& native_event, bool is_char);
533 532
534 // Used for synthetic events. 533 // Used for synthetic events.
535 KeyEvent(EventType type, KeyboardCode key_code, int flags, bool is_char); 534 KeyEvent(EventType type, KeyboardCode key_code, int flags, bool is_char);
536 535
537 // Used for synthetic events with code of DOM KeyboardEvent (e.g. 'KeyA') 536 // Used for synthetic events with code of DOM KeyboardEvent (e.g. 'KeyA')
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 // The set of indices of ones in the binary representation of 691 // The set of indices of ones in the binary representation of
693 // touch_ids_bitfield_ is the set of touch_ids associate with this gesture. 692 // touch_ids_bitfield_ is the set of touch_ids associate with this gesture.
694 // This value is stored as a bitfield because the number of touch ids varies, 693 // This value is stored as a bitfield because the number of touch ids varies,
695 // but we currently don't need more than 32 touches at a time. 694 // but we currently don't need more than 32 touches at a time.
696 const unsigned int touch_ids_bitfield_; 695 const unsigned int touch_ids_bitfield_;
697 }; 696 };
698 697
699 } // namespace ui 698 } // namespace ui
700 699
701 #endif // UI_EVENTS_EVENT_H_ 700 #endif // UI_EVENTS_EVENT_H_
OLDNEW
« no previous file with comments | « ui/aura/window_tree_host_x11.cc ('k') | ui/events/event.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698