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#ifndef UI_VIEWS_DRAG_UTILS_H_ 6#define UI_VIEWS_DRAG_UTILS_H_ 7 8#include "ui/base/dragdrop/drag_drop_types.h" 9#include "ui/gfx/native_widget_types.h" 10#include "ui/views/views_export.h" 11 12namespace gfx { 13class Canvas; 14class Point; 15class Size; 16} 17 18namespace ui { 19class OSExchangeData; 20} 21 22namespace views { 23class Widget; 24 25// Starts a drag operation. This blocks until the drag operation completes. 26VIEWS_EXPORT void RunShellDrag(gfx::NativeView view, 27 const ui::OSExchangeData& data, 28 const gfx::Point& location, 29 int operation, 30 ui::DragDropTypes::DragEventSource source); 31 32// Returns a canvas that can be used to draw the drag image. Caller owns the 33// returned object. |widget| is Widget hosting the view being dragged. 34VIEWS_EXPORT gfx::Canvas* GetCanvasForDragImage(Widget* widget, 35 const gfx::Size& canvas_size); 36 37} // namespace views 38 39#endif // UI_VIEWS_DRAG_UTILS_H_ 40