1 // Copyright 2013 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 #ifndef CONTENT_COMMON_INPUT_SYNTHETIC_WEB_INPUT_EVENT_BUILDERS_H_ 6 #define CONTENT_COMMON_INPUT_SYNTHETIC_WEB_INPUT_EVENT_BUILDERS_H_ 7 8 #include "base/time/time.h" 9 #include "content/common/content_export.h" 10 #include "third_party/WebKit/public/web/WebInputEvent.h" 11 12 // Provides sensible creation of default WebInputEvents for testing purposes. 13 14 namespace content { 15 16 class CONTENT_EXPORT SyntheticWebMouseEventBuilder { 17 public: 18 static blink::WebMouseEvent Build(blink::WebInputEvent::Type type); 19 static blink::WebMouseEvent Build(blink::WebInputEvent::Type type, 20 int window_x, 21 int window_y, 22 int modifiers); 23 }; 24 25 class CONTENT_EXPORT SyntheticWebMouseWheelEventBuilder { 26 public: 27 static blink::WebMouseWheelEvent Build( 28 blink::WebMouseWheelEvent::Phase phase); 29 static blink::WebMouseWheelEvent Build(float dx, 30 float dy, 31 int modifiers, 32 bool precise); 33 }; 34 35 class CONTENT_EXPORT SyntheticWebKeyboardEventBuilder { 36 public: 37 static blink::WebKeyboardEvent Build(blink::WebInputEvent::Type type); 38 }; 39 40 class CONTENT_EXPORT SyntheticWebGestureEventBuilder { 41 public: 42 static blink::WebGestureEvent Build(blink::WebInputEvent::Type type, 43 blink::WebGestureDevice source_device); 44 static blink::WebGestureEvent BuildScrollBegin(float dx_hint, 45 float dy_hint); 46 static blink::WebGestureEvent BuildScrollUpdate(float dx, 47 float dy, 48 int modifiers); 49 static blink::WebGestureEvent BuildPinchUpdate( 50 float scale, 51 float anchor_x, 52 float anchor_y, 53 int modifiers, 54 blink::WebGestureDevice source_device); 55 static blink::WebGestureEvent BuildFling( 56 float velocity_x, 57 float velocity_y, 58 blink::WebGestureDevice source_device); 59 }; 60 61 class CONTENT_EXPORT SyntheticWebTouchEvent 62 : public NON_EXPORTED_BASE(blink::WebTouchEvent) { 63 public: 64 SyntheticWebTouchEvent(); 65 66 // Mark all the points as stationary, and remove any released points. 67 void ResetPoints(); 68 69 // Adds an additional point to the touch list, returning the point's index. 70 int PressPoint(float x, float y); 71 void MovePoint(int index, float x, float y); 72 void ReleasePoint(int index); 73 void CancelPoint(int index); 74 75 void SetTimestamp(base::TimeDelta timestamp); 76 }; 77 78 } // namespace content 79 80 #endif // CONTENT_COMMON_INPUT_SYNTHETIC_WEB_INPUT_EVENT_BUILDERS_H_ 81