| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CONTENT_COMMON_INPUT_SYNTHETIC_GESTURE_PARAMS_H_ |
| #define CONTENT_COMMON_INPUT_SYNTHETIC_GESTURE_PARAMS_H_ |
| |
| #include "base/memory/scoped_ptr.h" |
| #include "content/common/content_export.h" |
| |
| namespace content { |
| |
| // Base class for storing parameters of synthetic gestures. Sending an object |
| // over IPC is handled by encapsulating it in a SyntheticGesturePacket object. |
| // |
| // The subclasses of this class only store data on synthetic gestures. |
| // The logic for dispatching input events that implement the gesture lives |
| // in separate classes in content/browser/renderer_host/input/. |
| // |
| // Adding new gesture types involves the following steps: |
| // 1) Create a new sub-type of SyntheticGestureParams with the parameters |
| // needed for the new gesture. |
| // 2) Use IPC macros to create serialization methods for the new type in |
| // content/common/input_messages.h. |
| // 3) Extend ParamTraits<content::SyntheticGesturePacket>::Write/Read/Log in |
| // content/common/input/input_param_traits.cc. |
| // 4) Add a new unit test to make sure that sending the type over IPC works |
| // correctly. |
| // The details of each step should become clear when looking at other types. |
| struct CONTENT_EXPORT SyntheticGestureParams { |
| SyntheticGestureParams(); |
| SyntheticGestureParams(const SyntheticGestureParams& other); |
| virtual ~SyntheticGestureParams(); |
| |
| // Describes which type of input events synthetic gesture objects should |
| // generate. When specifying DEFAULT_INPUT the platform will be queried for |
| // the preferred input event type. |
| enum GestureSourceType { |
| DEFAULT_INPUT, |
| TOUCH_INPUT, |
| MOUSE_INPUT, |
| GESTURE_SOURCE_TYPE_MAX = MOUSE_INPUT |
| }; |
| GestureSourceType gesture_source_type; |
| |
| enum GestureType { |
| SMOOTH_SCROLL_GESTURE, |
| PINCH_GESTURE, |
| TAP_GESTURE, |
| SYNTHETIC_GESTURE_TYPE_MAX = TAP_GESTURE |
| }; |
| virtual GestureType GetGestureType() const = 0; |
| }; |
| |
| } // namespace content |
| |
| #endif // CONTENT_COMMON_INPUT_SYNTHETIC_GESTURE_PARAMS_H_ |