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_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_TAP_GESTURE_H_ 6 #define CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_TAP_GESTURE_H_ 7 8 #include "content/browser/renderer_host/input/synthetic_gesture.h" 9 #include "content/browser/renderer_host/input/synthetic_gesture_target.h" 10 #include "content/common/content_export.h" 11 #include "content/common/input/synthetic_tap_gesture_params.h" 12 #include "content/common/input/synthetic_web_input_event_builders.h" 13 14 namespace content { 15 16 class CONTENT_EXPORT SyntheticTapGesture : public SyntheticGesture { 17 public: 18 explicit SyntheticTapGesture(const SyntheticTapGestureParams& params); 19 virtual ~SyntheticTapGesture(); 20 21 virtual SyntheticGesture::Result ForwardInputEvents( 22 const base::TimeTicks& timestamp, 23 SyntheticGestureTarget* target) OVERRIDE; 24 25 private: 26 enum GestureState { 27 SETUP, 28 PRESS, 29 WAITING_TO_RELEASE, 30 DONE 31 }; 32 33 void ForwardTouchOrMouseInputEvents(const base::TimeTicks& timestamp, 34 SyntheticGestureTarget* target); 35 36 void Press(SyntheticGestureTarget* target, const base::TimeTicks& timestamp); 37 void Release(SyntheticGestureTarget* target, 38 const base::TimeTicks& timestamp); 39 40 base::TimeDelta GetDuration() const; 41 42 SyntheticTapGestureParams params_; 43 base::TimeTicks start_time_; 44 SyntheticWebTouchEvent touch_event_; 45 SyntheticGestureParams::GestureSourceType gesture_source_type_; 46 GestureState state_; 47 48 DISALLOW_COPY_AND_ASSIGN(SyntheticTapGesture); 49 }; 50 51 } // namespace content 52 53 #endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_TAP_GESTURE_H_ 54