Home | History | Annotate | Download | only in dragdrop
      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_BASE_DRAGDROP_DRAG_UTILS_H_
      6 #define UI_BASE_DRAGDROP_DRAG_UTILS_H_
      7 
      8 #include <string>
      9 
     10 #include "base/files/file_path.h"
     11 #include "ui/base/ui_base_export.h"
     12 
     13 class GURL;
     14 
     15 namespace gfx {
     16 class Canvas;
     17 class ImageSkia;
     18 class Size;
     19 class Vector2d;
     20 }
     21 
     22 namespace ui {
     23 class OSExchangeData;
     24 }
     25 using ui::OSExchangeData;
     26 
     27 namespace drag_utils {
     28 
     29 // Creates a dragging image to be displayed when the user drags a file from
     30 // Chrome (via the download manager, for example). The drag image is set into
     31 // the supplied data_object. |file_name| can be a full path, but the directory
     32 // portion will be truncated in the drag image. |icon| can be empty.
     33 UI_BASE_EXPORT void CreateDragImageForFile(const base::FilePath& file_name,
     34                                            const gfx::ImageSkia& icon,
     35                                            ui::OSExchangeData* data_object);
     36 
     37 // Sets the drag image on data_object from the supplied canvas.
     38 // |cursor_offset| gives the location of the hotspot for the drag image.
     39 UI_BASE_EXPORT void SetDragImageOnDataObject(const gfx::Canvas& canvas,
     40                                              const gfx::Vector2d& cursor_offset,
     41                                              ui::OSExchangeData* data_object);
     42 
     43 // Sets the drag image on data_object from the supplied ImageSkia.
     44 // |cursor_offset| gives the location of the hotspot for the drag image.
     45 UI_BASE_EXPORT void SetDragImageOnDataObject(const gfx::ImageSkia& image_skia,
     46                                              const gfx::Vector2d& cursor_offset,
     47                                              ui::OSExchangeData* data_object);
     48 
     49 }  // namespace drag_utils
     50 
     51 #endif  // UI_BASE_DRAGDROP_DRAG_UTILS_H_
     52