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 12 namespace gfx { 13 class Canvas; 14 class Point; 15 class Size; 16 } 17 18 namespace ui { 19 class OSExchangeData; 20 } 21 22 namespace views { 23 class Widget; 24 25 // Starts a drag operation. This blocks until the drag operation completes. 26 VIEWS_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. 34 VIEWS_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