Home | History | Annotate | Download | only in gesture_detection
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "ui/events/gesture_detection/motion_event.h"
      6 
      7 #include "base/logging.h"
      8 
      9 namespace ui {
     10 
     11 size_t MotionEvent::GetHistorySize() const {
     12   return 0;
     13 }
     14 
     15 base::TimeTicks MotionEvent::GetHistoricalEventTime(
     16     size_t historical_index) const {
     17   NOTIMPLEMENTED();
     18   return base::TimeTicks();
     19 }
     20 
     21 float MotionEvent::GetHistoricalTouchMajor(size_t pointer_index,
     22                                            size_t historical_index) const {
     23   NOTIMPLEMENTED();
     24   return 0.f;
     25 }
     26 
     27 float MotionEvent::GetHistoricalX(size_t pointer_index,
     28                                   size_t historical_index) const {
     29   NOTIMPLEMENTED();
     30   return 0.f;
     31 }
     32 
     33 float MotionEvent::GetHistoricalY(size_t pointer_index,
     34                                   size_t historical_index) const {
     35   NOTIMPLEMENTED();
     36   return 0.f;
     37 }
     38 
     39 int MotionEvent::FindPointerIndexOfId(int id) const {
     40   const size_t pointer_count = GetPointerCount();
     41   for (size_t i = 0; i < pointer_count; ++i) {
     42     if (GetPointerId(i) == id)
     43       return static_cast<int>(i);
     44   }
     45   return -1;
     46 }
     47 
     48 bool operator==(const MotionEvent& lhs, const MotionEvent& rhs) {
     49   if (lhs.GetId() != rhs.GetId() || lhs.GetAction() != rhs.GetAction() ||
     50       lhs.GetActionIndex() != rhs.GetActionIndex() ||
     51       lhs.GetPointerCount() != rhs.GetPointerCount() ||
     52       lhs.GetButtonState() != rhs.GetButtonState() ||
     53       lhs.GetEventTime() != rhs.GetEventTime() ||
     54       lhs.GetHistorySize() != rhs.GetHistorySize())
     55     return false;
     56 
     57   for (size_t i = 0; i < lhs.GetPointerCount(); ++i) {
     58     int rhsi = rhs.FindPointerIndexOfId(lhs.GetPointerId(i));
     59     if (rhsi == -1)
     60       return false;
     61 
     62     if (lhs.GetX(i) != rhs.GetX(rhsi) || lhs.GetY(i) != rhs.GetY(rhsi) ||
     63         lhs.GetRawX(i) != rhs.GetRawX(rhsi) ||
     64         lhs.GetRawY(i) != rhs.GetRawY(rhsi) ||
     65         lhs.GetTouchMajor(i) != rhs.GetTouchMajor(rhsi) ||
     66         lhs.GetTouchMinor(i) != rhs.GetTouchMinor(rhsi) ||
     67         lhs.GetOrientation(i) != rhs.GetOrientation(rhsi) ||
     68         lhs.GetPressure(i) != rhs.GetPressure(rhsi) ||
     69         lhs.GetToolType(i) != rhs.GetToolType(rhsi))
     70       return false;
     71 
     72     for (size_t h = 0; h < lhs.GetHistorySize(); ++h) {
     73       if (lhs.GetHistoricalX(i, h) != rhs.GetHistoricalX(rhsi, h) ||
     74           lhs.GetHistoricalY(i, h) != rhs.GetHistoricalY(rhsi, h) ||
     75           lhs.GetHistoricalTouchMajor(i, h) !=
     76               rhs.GetHistoricalTouchMajor(rhsi, h))
     77         return false;
     78     }
     79   }
     80 
     81   for (size_t h = 0; h < lhs.GetHistorySize(); ++h) {
     82     if (lhs.GetHistoricalEventTime(h) != rhs.GetHistoricalEventTime(h))
     83       return false;
     84   }
     85 
     86   return true;
     87 }
     88 
     89 bool operator!=(const MotionEvent& lhs, const MotionEvent& rhs) {
     90   return !(lhs == rhs);
     91 }
     92 
     93 }  // namespace ui
     94