drag_messages.h revision 7d4cd473f85ac64c3747c96c277f9e506a0d2246
1// Copyright (c) 2012 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// IPC messages for drag and drop.
6// Multiply-included message file, hence no include guard.
7
8#include "content/common/drag_event_source_info.h"
9#include "content/public/common/common_param_traits.h"
10#include "ipc/ipc_message_macros.h"
11#include "third_party/skia/include/core/SkBitmap.h"
12#include "third_party/WebKit/public/web/WebDragOperation.h"
13#include "ui/gfx/point.h"
14#include "ui/gfx/vector2d.h"
15#include "webkit/common/webdropdata.h"
16
17#define IPC_MESSAGE_START DragMsgStart
18
19// Messages sent from the browser to the renderer.
20
21IPC_MESSAGE_ROUTED5(DragMsg_TargetDragEnter,
22                    WebDropData /* drop_data */,
23                    gfx::Point /* client_pt */,
24                    gfx::Point /* screen_pt */,
25                    WebKit::WebDragOperationsMask /* ops_allowed */,
26                    int /* key_modifiers */)
27
28IPC_MESSAGE_ROUTED4(DragMsg_TargetDragOver,
29                    gfx::Point /* client_pt */,
30                    gfx::Point /* screen_pt */,
31                    WebKit::WebDragOperationsMask /* ops_allowed */,
32                    int /* key_modifiers */)
33
34IPC_MESSAGE_ROUTED0(DragMsg_TargetDragLeave)
35
36IPC_MESSAGE_ROUTED3(DragMsg_TargetDrop,
37                    gfx::Point /* client_pt */,
38                    gfx::Point /* screen_pt */,
39                    int /* key_modifiers */)
40
41// Notifies the renderer of updates in mouse position of an in-progress
42// drag.  if |ended| is true, then the user has ended the drag operation.
43IPC_MESSAGE_ROUTED4(DragMsg_SourceEndedOrMoved,
44                    gfx::Point /* client_pt */,
45                    gfx::Point /* screen_pt */,
46                    bool /* ended */,
47                    WebKit::WebDragOperation /* drag_operation */)
48
49// Notifies the renderer that the system DoDragDrop call has ended.
50IPC_MESSAGE_ROUTED0(DragMsg_SourceSystemDragEnded)
51
52// Messages sent from the renderer to the browser.
53
54// Used to tell the parent the user started dragging in the content area. The
55// WebDropData struct contains contextual information about the pieces of the
56// page the user dragged. The parent uses this notification to initiate a
57// drag session at the OS level.
58IPC_MESSAGE_ROUTED5(DragHostMsg_StartDragging,
59                    WebDropData /* drop_data */,
60                    WebKit::WebDragOperationsMask /* ops_allowed */,
61                    SkBitmap /* image */,
62                    gfx::Vector2d /* image_offset */,
63                    content::DragEventSourceInfo /* event_info */)
64
65// The page wants to update the mouse cursor during a drag & drop operation.
66// |is_drop_target| is true if the mouse is over a valid drop target.
67IPC_MESSAGE_ROUTED1(DragHostMsg_UpdateDragCursor,
68                    WebKit::WebDragOperation /* drag_operation */)
69
70// Notifies the host that the renderer finished a drop operation.
71IPC_MESSAGE_ROUTED0(DragHostMsg_TargetDrop_ACK)
72