• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "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"
16 
17 #define IPC_MESSAGE_START DragMsgStart
18 
19 // Messages sent from the browser to the renderer.
20 
21 IPC_MESSAGE_ROUTED5(DragMsg_TargetDragEnter,
22                     content::DropData /* drop_data */,
23                     gfx::Point /* client_pt */,
24                     gfx::Point /* screen_pt */,
25                     blink::WebDragOperationsMask /* ops_allowed */,
26                     int /* key_modifiers */)
27 
28 IPC_MESSAGE_ROUTED4(DragMsg_TargetDragOver,
29                     gfx::Point /* client_pt */,
30                     gfx::Point /* screen_pt */,
31                     blink::WebDragOperationsMask /* ops_allowed */,
32                     int /* key_modifiers */)
33 
34 IPC_MESSAGE_ROUTED0(DragMsg_TargetDragLeave)
35 
36 IPC_MESSAGE_ROUTED3(DragMsg_TargetDrop,
37                     gfx::Point /* client_pt */,
38                     gfx::Point /* screen_pt */,
39                     int /* key_modifiers */)
40 
41 // Notifies the renderer when and where the mouse-drag ended.
42 IPC_MESSAGE_ROUTED3(DragMsg_SourceEnded,
43                     gfx::Point /* client_pt */,
44                     gfx::Point /* screen_pt */,
45                     blink::WebDragOperation /* drag_operation */)
46 
47 // Notifies the renderer that the system DoDragDrop call has ended.
48 IPC_MESSAGE_ROUTED0(DragMsg_SourceSystemDragEnded)
49 
50 // Messages sent from the renderer to the browser.
51 
52 // Used to tell the parent the user started dragging in the content area. The
53 // DropData struct contains contextual information about the pieces of the
54 // page the user dragged. The parent uses this notification to initiate a
55 // drag session at the OS level.
56 IPC_MESSAGE_ROUTED5(DragHostMsg_StartDragging,
57                     content::DropData /* drop_data */,
58                     blink::WebDragOperationsMask /* ops_allowed */,
59                     SkBitmap /* image */,
60                     gfx::Vector2d /* image_offset */,
61                     content::DragEventSourceInfo /* event_info */)
62 
63 // The page wants to update the mouse cursor during a drag & drop operation.
64 // |is_drop_target| is true if the mouse is over a valid drop target.
65 IPC_MESSAGE_ROUTED1(DragHostMsg_UpdateDragCursor,
66                     blink::WebDragOperation /* drag_operation */)
67 
68 // Notifies the host that the renderer finished a drop operation.
69 IPC_MESSAGE_ROUTED0(DragHostMsg_TargetDrop_ACK)
70