blob: ca702e2b9765a9e0fb7b2f7295983698187add66 [file] [log] [blame]
// Copyright (c) 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_MESSAGES_H_
#define CONTENT_COMMON_INPUT_MESSAGES_H_
// IPC messages for input events and other messages that require processing in
// order relative to input events.
#include "base/strings/string16.h"
#include "build/build_config.h"
#include "cc/input/overscroll_behavior.h"
#include "content/common/content_export.h"
#include "content/common/content_param_traits.h"
#include "content/common/edit_command.h"
#include "content/common/input/input_event.h"
#include "content/common/input/input_event_ack.h"
#include "content/common/input/input_event_dispatch_type.h"
#include "content/common/input/input_param_traits.h"
#include "content/common/input/synthetic_gesture_params.h"
#include "content/common/input/synthetic_pinch_gesture_params.h"
#include "content/common/input/synthetic_pointer_action_list_params.h"
#include "content/common/input/synthetic_pointer_action_params.h"
#include "content/common/input/synthetic_smooth_drag_gesture_params.h"
#include "content/common/input/synthetic_smooth_scroll_gesture_params.h"
#include "content/common/input/synthetic_tap_gesture_params.h"
#include "content/public/common/input_event_ack_source.h"
#include "content/public/common/input_event_ack_state.h"
#include "ipc/ipc_message_macros.h"
#include "third_party/blink/public/platform/web_input_event.h"
#include "third_party/blink/public/platform/web_pointer_properties.h"
#include "ui/events/blink/did_overscroll_params.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/vector2d_f.h"
#include "ui/gfx/ipc/gfx_param_traits.h"
#include "ui/gfx/ipc/skia/gfx_skia_param_traits.h"
#include "ui/gfx/range/range.h"
#include "ui/latency/ipc/latency_info_param_traits.h"
#undef IPC_MESSAGE_EXPORT
#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
#ifdef IPC_MESSAGE_START
#error IPC_MESSAGE_START
#endif
#define IPC_MESSAGE_START InputMsgStart
IPC_ENUM_TRAITS_MAX_VALUE(content::InputEventAckSource,
content::InputEventAckSource::MAX_FROM_RENDERER)
IPC_ENUM_TRAITS_MAX_VALUE(
content::SyntheticGestureParams::GestureSourceType,
content::SyntheticGestureParams::GESTURE_SOURCE_TYPE_MAX)
IPC_ENUM_TRAITS_MAX_VALUE(
content::SyntheticGestureParams::GestureType,
content::SyntheticGestureParams::SYNTHETIC_GESTURE_TYPE_MAX)
IPC_ENUM_TRAITS_MAX_VALUE(
content::SyntheticPointerActionParams::PointerActionType,
content::SyntheticPointerActionParams::PointerActionType::
POINTER_ACTION_TYPE_MAX)
IPC_ENUM_TRAITS_MAX_VALUE(
content::SyntheticPointerActionParams::Button,
content::SyntheticPointerActionParams::Button::BUTTON_MAX)
IPC_ENUM_TRAITS_MAX_VALUE(content::InputEventDispatchType,
content::InputEventDispatchType::DISPATCH_TYPE_MAX)
IPC_ENUM_TRAITS_MIN_MAX_VALUE(blink::WebPointerProperties::Button,
blink::WebPointerProperties::Button::kNoButton,
blink::WebPointerProperties::Button::kLastEntry)
IPC_ENUM_TRAITS_MAX_VALUE(blink::WebPointerProperties::PointerType,
blink::WebPointerProperties::PointerType::kLastEntry)
IPC_ENUM_TRAITS_MAX_VALUE(blink::WebGestureDevice,
(blink::WebGestureDevice::kWebGestureDeviceCount - 1))
IPC_ENUM_TRAITS_MAX_VALUE(blink::WebInputEvent::DispatchType,
blink::WebInputEvent::DispatchType::kLastDispatchType)
IPC_ENUM_TRAITS_MAX_VALUE(blink::WebGestureEvent::ScrollUnits,
blink::WebGestureEvent::ScrollUnits::kLastScrollUnit)
IPC_ENUM_TRAITS_MAX_VALUE(
blink::WebGestureEvent::InertialPhaseState,
blink::WebGestureEvent::InertialPhaseState::kLastPhase)
IPC_ENUM_TRAITS_MAX_VALUE(blink::WebTouchPoint::State,
blink::WebTouchPoint::State::kStateMax)
IPC_ENUM_TRAITS_MAX_VALUE(
cc::OverscrollBehavior::OverscrollBehaviorType,
cc::OverscrollBehavior::OverscrollBehaviorType::kOverscrollBehaviorTypeMax)
IPC_STRUCT_TRAITS_BEGIN(ui::DidOverscrollParams)
IPC_STRUCT_TRAITS_MEMBER(accumulated_overscroll)
IPC_STRUCT_TRAITS_MEMBER(latest_overscroll_delta)
IPC_STRUCT_TRAITS_MEMBER(current_fling_velocity)
IPC_STRUCT_TRAITS_MEMBER(causal_event_viewport_point)
IPC_STRUCT_TRAITS_MEMBER(overscroll_behavior)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(cc::OverscrollBehavior)
IPC_STRUCT_TRAITS_MEMBER(x)
IPC_STRUCT_TRAITS_MEMBER(y)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(content::EditCommand)
IPC_STRUCT_TRAITS_MEMBER(name)
IPC_STRUCT_TRAITS_MEMBER(value)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(content::SyntheticGestureParams)
IPC_STRUCT_TRAITS_MEMBER(gesture_source_type)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(content::SyntheticSmoothDragGestureParams)
IPC_STRUCT_TRAITS_PARENT(content::SyntheticGestureParams)
IPC_STRUCT_TRAITS_MEMBER(start_point)
IPC_STRUCT_TRAITS_MEMBER(distances)
IPC_STRUCT_TRAITS_MEMBER(speed_in_pixels_s)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(content::SyntheticSmoothScrollGestureParams)
IPC_STRUCT_TRAITS_PARENT(content::SyntheticGestureParams)
IPC_STRUCT_TRAITS_MEMBER(anchor)
IPC_STRUCT_TRAITS_MEMBER(distances)
IPC_STRUCT_TRAITS_MEMBER(prevent_fling)
IPC_STRUCT_TRAITS_MEMBER(speed_in_pixels_s)
IPC_STRUCT_TRAITS_MEMBER(fling_velocity_x)
IPC_STRUCT_TRAITS_MEMBER(fling_velocity_y)
IPC_STRUCT_TRAITS_MEMBER(precise_scrolling_deltas)
IPC_STRUCT_TRAITS_MEMBER(scroll_by_page)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(content::SyntheticPinchGestureParams)
IPC_STRUCT_TRAITS_PARENT(content::SyntheticGestureParams)
IPC_STRUCT_TRAITS_MEMBER(scale_factor)
IPC_STRUCT_TRAITS_MEMBER(anchor)
IPC_STRUCT_TRAITS_MEMBER(relative_pointer_speed_in_pixels_s)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(content::SyntheticTapGestureParams)
IPC_STRUCT_TRAITS_PARENT(content::SyntheticGestureParams)
IPC_STRUCT_TRAITS_MEMBER(position)
IPC_STRUCT_TRAITS_MEMBER(duration_ms)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(content::SyntheticPointerActionParams)
IPC_STRUCT_TRAITS_MEMBER(pointer_action_type_)
IPC_STRUCT_TRAITS_MEMBER(pointer_id_)
IPC_STRUCT_TRAITS_MEMBER(position_)
IPC_STRUCT_TRAITS_MEMBER(button_)
IPC_STRUCT_TRAITS_MEMBER(key_modifiers_)
IPC_STRUCT_TRAITS_MEMBER(width_)
IPC_STRUCT_TRAITS_MEMBER(height_)
IPC_STRUCT_TRAITS_MEMBER(rotation_angle_)
IPC_STRUCT_TRAITS_MEMBER(force_)
IPC_STRUCT_TRAITS_MEMBER(timestamp_)
IPC_STRUCT_TRAITS_MEMBER(duration_)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(content::SyntheticPointerActionListParams)
IPC_STRUCT_TRAITS_PARENT(content::SyntheticGestureParams)
IPC_STRUCT_TRAITS_MEMBER(params)
IPC_STRUCT_TRAITS_END()
// TODO(dtapuska): Remove this as only OOPIF uses this
IPC_MESSAGE_ROUTED1(InputMsg_SetFocus,
bool /* enable */)
#endif // CONTENT_COMMON_INPUT_MESSAGES_H_