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_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.
     33 UI_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. width/height
     38 // are the size of the image to use, and the offsets give the location of
     39 // the hotspot for the drag image.
     40 UI_EXPORT void SetDragImageOnDataObject(const gfx::Canvas& canvas,
     41                                         const gfx::Size& size,
     42                                         const gfx::Vector2d& cursor_offset,
     43                                         ui::OSExchangeData* data_object);
     44 
     45 // Sets the drag image on data_object from the supplied ImageSkia. width/height
     46 // are the size of the image to use, and the offsets give the location of
     47 // the hotspot for the drag image.
     48 UI_EXPORT void SetDragImageOnDataObject(const gfx::ImageSkia& image_skia,
     49                                         const gfx::Size& size,
     50                                         const gfx::Vector2d& cursor_offset,
     51                                         ui::OSExchangeData* data_object);
     52 
     53 }  // namespace drag_utils
     54 
     55 #endif  // UI_BASE_DRAGDROP_DRAG_UTILS_H_
     56