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