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