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

Unified Diff: ui/events/gesture_detection/motion_event.cc

Issue 502993004: Remove abstract Clone and Cancel methods from MotionEvent (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: ui/events/gesture_detection/motion_event.cc
diff --git a/ui/events/gesture_detection/motion_event.cc b/ui/events/gesture_detection/motion_event.cc
index 71a6912d06fc8f31d1fc35b56f5651018fc6a394..b7775f8d27b2ca96e74a8072f0f24c50c5511995 100644
--- a/ui/events/gesture_detection/motion_event.cc
+++ b/ui/events/gesture_detection/motion_event.cc
@@ -4,7 +4,11 @@
#include "ui/events/gesture_detection/motion_event.h"
+#include <sstream>
+
#include "base/logging.h"
+#include "ui/events/gesture_detection/bitset_32.h"
+#include "ui/events/gesture_detection/motion_event_generic.h"
namespace ui {
@@ -45,49 +49,63 @@ int MotionEvent::FindPointerIndexOfId(int id) const {
return -1;
}
-bool operator==(const MotionEvent& lhs, const MotionEvent& rhs) {
- if (lhs.GetId() != rhs.GetId() || lhs.GetAction() != rhs.GetAction() ||
- lhs.GetActionIndex() != rhs.GetActionIndex() ||
- lhs.GetPointerCount() != rhs.GetPointerCount() ||
- lhs.GetButtonState() != rhs.GetButtonState() ||
- lhs.GetEventTime() != rhs.GetEventTime() ||
- lhs.GetHistorySize() != rhs.GetHistorySize())
- return false;
-
- for (size_t i = 0; i < lhs.GetPointerCount(); ++i) {
- int rhsi = rhs.FindPointerIndexOfId(lhs.GetPointerId(i));
- if (rhsi == -1)
- return false;
-
- if (lhs.GetX(i) != rhs.GetX(rhsi) || lhs.GetY(i) != rhs.GetY(rhsi) ||
- lhs.GetRawX(i) != rhs.GetRawX(rhsi) ||
- lhs.GetRawY(i) != rhs.GetRawY(rhsi) ||
- lhs.GetTouchMajor(i) != rhs.GetTouchMajor(rhsi) ||
- lhs.GetTouchMinor(i) != rhs.GetTouchMinor(rhsi) ||
- lhs.GetOrientation(i) != rhs.GetOrientation(rhsi) ||
- lhs.GetPressure(i) != rhs.GetPressure(rhsi) ||
- lhs.GetToolType(i) != rhs.GetToolType(rhsi))
- return false;
-
- for (size_t h = 0; h < lhs.GetHistorySize(); ++h) {
- if (lhs.GetHistoricalX(i, h) != rhs.GetHistoricalX(rhsi, h) ||
- lhs.GetHistoricalY(i, h) != rhs.GetHistoricalY(rhsi, h) ||
- lhs.GetHistoricalTouchMajor(i, h) !=
- rhs.GetHistoricalTouchMajor(rhsi, h))
- return false;
- }
- }
-
- for (size_t h = 0; h < lhs.GetHistorySize(); ++h) {
- if (lhs.GetHistoricalEventTime(h) != rhs.GetHistoricalEventTime(h))
- return false;
- }
+scoped_ptr<MotionEvent> MotionEvent::Clone() const {
+ return MotionEventGeneric::CloneEvent(*this).PassAs<MotionEvent>();
+}
- return true;
+scoped_ptr<MotionEvent> MotionEvent::Cancel() const {
+ return MotionEventGeneric::CancelEvent(*this).PassAs<MotionEvent>();
}
-bool operator!=(const MotionEvent& lhs, const MotionEvent& rhs) {
- return !(lhs == rhs);
+std::string MotionEvent::ToString() const {
+ std::stringstream ss;
+ ss << "MotionEvent {"
+ << "\n ID: " << GetId()
+ << "\n Action: " << GetAction()
+ << "\n ActionIndex: " << GetActionIndex()
+ << "\n Flags: " << GetFlags()
+ << "\n ButtonState: " << GetButtonState()
+ << "\n Pointers: [";
+ const size_t pointer_count = GetPointerCount();
+ const size_t history_size = GetHistorySize();
+
+ BitSet32 pointer_ids;
+ for (size_t i = 0; i < pointer_count; ++i) {
+ pointer_ids.mark_bit(GetPointerId(i));
+
+ // Print the pointers sorted by id.
+ while (!pointer_ids.is_empty()) {
+ int pi = FindPointerIndexOfId(pointer_ids.first_marked_bit());
+ DCHECK_GE(pi, 0);
+ pointer_ids.clear_first_marked_bit();
+ ss << "{"
+ << "\n Pos: (" << GetX(pi) << ", " << GetY(pi) << ")"
+ << "\n RawPos: (" << GetX(pi) << ", " << GetY(pi) << ")"
+ << "\n Size: (" << GetTouchMajor(pi) << ", " << GetTouchMinor(pi) << ")"
+ << "\n Orientation: " << GetOrientation(pi)
+ << "\n Pressure: " << GetOrientation(pi)
+ << "\n Tool: " << GetToolType(pi);
+ if (history_size) {
+ ss << "\n History: [";
+ for (size_t h = 0; h < history_size; ++h) {
+ ss << "\n { " << GetHistoricalX(pi, h)
+ << ", " << GetHistoricalY(pi, h)
+ << ", " << GetHistoricalTouchMajor(pi, h)
+ << ", " << GetHistoricalEventTime(pi).ToInternalValue()
+ << " }";
+ if (h + 1 < history_size)
+ ss << ",";
+ }
+ ss << "\n ]";
+ }
+ ss << "\n }";
+ if (i + 1 < pointer_count)
+ ss << ", ";
+ }
tdresser 2014/10/20 15:19:15 This indentation looks wrong.
jdduke (slow) 2014/10/21 22:19:58 Done.
+ }
+ ss << "]\n}";
+
+ return ss.str();
}
} // namespace ui

Powered by Google App Engine
This is Rietveld 408576698