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 14namespace content { 15 16class 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::TimeDelta& interval, SyntheticGestureTarget* target) OVERRIDE; 23 24 private: 25 enum GestureState { 26 SETUP, 27 PRESS, 28 WAITING_TO_RELEASE, 29 DONE 30 }; 31 32 void ForwardTouchOrMouseInputEvents(const base::TimeDelta& interval, 33 SyntheticGestureTarget* target); 34 35 void Press(SyntheticGestureTarget* target); 36 void Release(SyntheticGestureTarget* target); 37 38 SyntheticTapGestureParams params_; 39 base::TimeDelta total_waiting_time_; 40 SyntheticWebTouchEvent touch_event_; 41 SyntheticGestureParams::GestureSourceType gesture_source_type_; 42 GestureState state_; 43 44 DISALLOW_COPY_AND_ASSIGN(SyntheticTapGesture); 45}; 46 47} // namespace content 48 49#endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_TAP_GESTURE_H_ 50