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

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

Issue 1017473002: [Merge] Make mouse buttons 8 - 11 navigate forward and back in history (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2311
Patch Set: Created 5 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
« no previous file with comments | « ui/aura/window_event_dispatcher.cc ('k') | ui/events/event_constants.h » ('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 343 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 // Used for synthetic events in testing, gesture recognizer and Ozone 354 // Used for synthetic events in testing, gesture recognizer and Ozone
355 MouseEvent(EventType type, 355 MouseEvent(EventType type,
356 const gfx::PointF& location, 356 const gfx::PointF& location,
357 const gfx::PointF& root_location, 357 const gfx::PointF& root_location,
358 base::TimeDelta time_stamp, 358 base::TimeDelta time_stamp,
359 int flags, 359 int flags,
360 int changed_button_flags); 360 int changed_button_flags);
361 361
362 // Conveniences to quickly test what button is down 362 // Conveniences to quickly test what button is down
363 bool IsOnlyLeftMouseButton() const { 363 bool IsOnlyLeftMouseButton() const {
364 return (flags() & EF_LEFT_MOUSE_BUTTON) && 364 return button_flags() == EF_LEFT_MOUSE_BUTTON;
365 !(flags() & (EF_MIDDLE_MOUSE_BUTTON | EF_RIGHT_MOUSE_BUTTON));
366 } 365 }
367 366
368 bool IsLeftMouseButton() const { 367 bool IsLeftMouseButton() const {
369 return (flags() & EF_LEFT_MOUSE_BUTTON) != 0; 368 return (flags() & EF_LEFT_MOUSE_BUTTON) != 0;
370 } 369 }
371 370
372 bool IsOnlyMiddleMouseButton() const { 371 bool IsOnlyMiddleMouseButton() const {
373 return (flags() & EF_MIDDLE_MOUSE_BUTTON) && 372 return button_flags() == EF_MIDDLE_MOUSE_BUTTON;
374 !(flags() & (EF_LEFT_MOUSE_BUTTON | EF_RIGHT_MOUSE_BUTTON));
375 } 373 }
376 374
377 bool IsMiddleMouseButton() const { 375 bool IsMiddleMouseButton() const {
378 return (flags() & EF_MIDDLE_MOUSE_BUTTON) != 0; 376 return (flags() & EF_MIDDLE_MOUSE_BUTTON) != 0;
379 } 377 }
380 378
381 bool IsOnlyRightMouseButton() const { 379 bool IsOnlyRightMouseButton() const {
382 return (flags() & EF_RIGHT_MOUSE_BUTTON) && 380 return button_flags() == EF_RIGHT_MOUSE_BUTTON;
383 !(flags() & (EF_LEFT_MOUSE_BUTTON | EF_MIDDLE_MOUSE_BUTTON));
384 } 381 }
385 382
386 bool IsRightMouseButton() const { 383 bool IsRightMouseButton() const {
387 return (flags() & EF_RIGHT_MOUSE_BUTTON) != 0; 384 return (flags() & EF_RIGHT_MOUSE_BUTTON) != 0;
388 } 385 }
389 386
390 bool IsAnyButton() const { 387 bool IsAnyButton() const {
391 return (flags() & (EF_LEFT_MOUSE_BUTTON | EF_MIDDLE_MOUSE_BUTTON | 388 return button_flags() != 0;
392 EF_RIGHT_MOUSE_BUTTON)) != 0;
393 } 389 }
394 390
395 // Compares two mouse down events and returns true if the second one should 391 // Compares two mouse down events and returns true if the second one should
396 // be considered a repeat of the first. 392 // be considered a repeat of the first.
397 static bool IsRepeatedClickEvent( 393 static bool IsRepeatedClickEvent(
398 const MouseEvent& event1, 394 const MouseEvent& event1,
399 const MouseEvent& event2); 395 const MouseEvent& event2);
400 396
401 // Get the click count. Can be 1, 2 or 3 for mousedown messages, 0 otherwise. 397 // Get the click count. Can be 1, 2 or 3 for mousedown messages, 0 otherwise.
402 int GetClickCount() const; 398 int GetClickCount() const;
403 399
404 // Set the click count for a mousedown message. Can be 1, 2 or 3. 400 // Set the click count for a mousedown message. Can be 1, 2 or 3.
405 void SetClickCount(int click_count); 401 void SetClickCount(int click_count);
406 402
407 // Identifies the button that changed. During a press this corresponds to the 403 // Identifies the button that changed. During a press this corresponds to the
408 // button that was pressed and during a release this corresponds to the button 404 // button that was pressed and during a release this corresponds to the button
409 // that was released. 405 // that was released.
410 // NOTE: during a press and release flags() contains the complete set of 406 // NOTE: during a press and release flags() contains the complete set of
411 // flags. Use this to determine the button that was pressed or released. 407 // flags. Use this to determine the button that was pressed or released.
412 int changed_button_flags() const { return changed_button_flags_; } 408 int changed_button_flags() const { return changed_button_flags_; }
413 409
414 // Updates the button that changed. 410 // Updates the button that changed.
415 void set_changed_button_flags(int flags) { changed_button_flags_ = flags; } 411 void set_changed_button_flags(int flags) { changed_button_flags_ = flags; }
416 412
417 private: 413 private:
418 FRIEND_TEST_ALL_PREFIXES(EventTest, DoubleClickRequiresRelease); 414 FRIEND_TEST_ALL_PREFIXES(EventTest, DoubleClickRequiresRelease);
419 FRIEND_TEST_ALL_PREFIXES(EventTest, SingleClickRightLeft); 415 FRIEND_TEST_ALL_PREFIXES(EventTest, SingleClickRightLeft);
420 416
417 // Returns the flags for the mouse buttons.
418 int button_flags() const {
419 return flags() & (EF_LEFT_MOUSE_BUTTON | EF_MIDDLE_MOUSE_BUTTON |
420 EF_RIGHT_MOUSE_BUTTON | EF_BACK_MOUSE_BUTTON |
421 EF_FORWARD_MOUSE_BUTTON);
422 }
423
421 // Returns the repeat count based on the previous mouse click, if it is 424 // Returns the repeat count based on the previous mouse click, if it is
422 // recent enough and within a small enough distance. 425 // recent enough and within a small enough distance.
423 static int GetRepeatCount(const MouseEvent& click_event); 426 static int GetRepeatCount(const MouseEvent& click_event);
424 427
425 // Resets the last_click_event_ for unit tests. 428 // Resets the last_click_event_ for unit tests.
426 static void ResetLastClickForTest(); 429 static void ResetLastClickForTest();
427 430
428 // See description above getter for details. 431 // See description above getter for details.
429 int changed_button_flags_; 432 int changed_button_flags_;
430 433
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 881
879 const GestureEventDetails& details() const { return details_; } 882 const GestureEventDetails& details() const { return details_; }
880 883
881 private: 884 private:
882 GestureEventDetails details_; 885 GestureEventDetails details_;
883 }; 886 };
884 887
885 } // namespace ui 888 } // namespace ui
886 889
887 #endif // UI_EVENTS_EVENT_H_ 890 #endif // UI_EVENTS_EVENT_H_
OLDNEW
« no previous file with comments | « ui/aura/window_event_dispatcher.cc ('k') | ui/events/event_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698