1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// found in the LICENSE file. 4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include <vector> 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "base/basictypes.h" 8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "base/time/time.h" 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "ui/events/gesture_detection/motion_event_generic.h" 10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ui/gfx/geometry/point_f.h" 11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)namespace ui { 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace test { 14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)struct MockMotionEvent : public MotionEventGeneric { 160529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch enum { TOUCH_MAJOR = 10 }; 17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) MockMotionEvent(); 19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) explicit MockMotionEvent(Action action); 20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) MockMotionEvent(Action action, base::TimeTicks time, float x, float y); 21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) MockMotionEvent(Action action, 22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) base::TimeTicks time, 23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) float x0, 24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) float y0, 25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) float x1, 26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) float y1); 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu MockMotionEvent(Action action, 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu base::TimeTicks time, 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu float x0, 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu float y0, 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu float x1, 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu float y1, 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu float x2, 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu float y2); 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu MockMotionEvent(Action action, 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu base::TimeTicks time, 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::vector<gfx::PointF>& positions); 38a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) MockMotionEvent(const MockMotionEvent& other); 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual ~MockMotionEvent(); 41a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 42a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // MotionEvent methods. 43a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual scoped_ptr<MotionEvent> Clone() const OVERRIDE; 44a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual scoped_ptr<MotionEvent> Cancel() const OVERRIDE; 45a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 46a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Utility methods. 47a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void PressPoint(float x, float y); 48a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void MovePoint(size_t index, float x, float y); 49a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void ReleasePoint(); 50a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void CancelPoint(); 51f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) void SetTouchMajor(float new_touch_major); 526d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) void SetRawOffset(float raw_offset_x, float raw_offset_y); 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void SetToolType(size_t index, ToolType tool_type); 54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) private: 565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) void PushPointer(float x, float y); 575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) void ResolvePointers(); 58a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}; 59a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace test 61a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} // namespace ui 62