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.
5 // IPC messages for drag and drop.
6 // Multiply-included message file, hence no include guard.
8 #include "content/common/drag_event_source_info.h"
9 #include "content/public/common/common_param_traits.h"
10 #include "content/public/common/drop_data.h"
11 #include "ipc/ipc_message_macros.h"
12 #include "third_party/skia/include/core/SkBitmap.h"
13 #include "third_party/WebKit/public/web/WebDragOperation.h"
14 #include "ui/gfx/point.h"
15 #include "ui/gfx/vector2d.h"
17 #define IPC_MESSAGE_START DragMsgStart
19 // Messages sent from the browser to the renderer.
21 IPC_MESSAGE_ROUTED5(DragMsg_TargetDragEnter
,
22 content::DropData
/* drop_data */,
23 gfx::Point
/* client_pt */,
24 gfx::Point
/* screen_pt */,
25 WebKit::WebDragOperationsMask
/* ops_allowed */,
26 int /* key_modifiers */)
28 IPC_MESSAGE_ROUTED4(DragMsg_TargetDragOver
,
29 gfx::Point
/* client_pt */,
30 gfx::Point
/* screen_pt */,
31 WebKit::WebDragOperationsMask
/* ops_allowed */,
32 int /* key_modifiers */)
34 IPC_MESSAGE_ROUTED0(DragMsg_TargetDragLeave
)
36 IPC_MESSAGE_ROUTED3(DragMsg_TargetDrop
,
37 gfx::Point
/* client_pt */,
38 gfx::Point
/* screen_pt */,
39 int /* key_modifiers */)
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.
43 IPC_MESSAGE_ROUTED4(DragMsg_SourceEndedOrMoved
,
44 gfx::Point
/* client_pt */,
45 gfx::Point
/* screen_pt */,
47 WebKit::WebDragOperation
/* drag_operation */)
49 // Notifies the renderer that the system DoDragDrop call has ended.
50 IPC_MESSAGE_ROUTED0(DragMsg_SourceSystemDragEnded
)
52 // Messages sent from the renderer to the browser.
54 // Used to tell the parent the user started dragging in the content area. The
55 // DropData 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.
58 IPC_MESSAGE_ROUTED5(DragHostMsg_StartDragging
,
59 content::DropData
/* drop_data */,
60 WebKit::WebDragOperationsMask
/* ops_allowed */,
62 gfx::Vector2d
/* image_offset */,
63 content::DragEventSourceInfo
/* event_info */)
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.
67 IPC_MESSAGE_ROUTED1(DragHostMsg_UpdateDragCursor
,
68 WebKit::WebDragOperation
/* drag_operation */)
70 // Notifies the host that the renderer finished a drop operation.
71 IPC_MESSAGE_ROUTED0(DragHostMsg_TargetDrop_ACK
)