| Index: ui/base/dragdrop/os_exchange_data_provider_mac.mm
|
| diff --git a/ui/base/dragdrop/os_exchange_data_provider_mac.mm b/ui/base/dragdrop/os_exchange_data_provider_mac.mm
|
| index 5be2c7994894db9f8d33df4df0781fdede8dd5b6..dc046b5f501b6a103f4e198cfc7af98588f81b37 100644
|
| --- a/ui/base/dragdrop/os_exchange_data_provider_mac.mm
|
| +++ b/ui/base/dragdrop/os_exchange_data_provider_mac.mm
|
| @@ -7,11 +7,14 @@
|
| #import <Cocoa/Cocoa.h>
|
|
|
| #include "base/logging.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/pickle.h"
|
| #include "base/strings/sys_string_conversions.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #import "third_party/mozilla/NSPasteboard+Utils.h"
|
| #import "ui/base/clipboard/clipboard_util_mac.h"
|
| +#import "ui/base/clipboard/custom_data_helper.h"
|
| +#import "ui/base/dragdrop/cocoa_dnd_util.h"
|
| #include "url/gurl.h"
|
|
|
| namespace ui {
|
| @@ -169,6 +172,42 @@ bool OSExchangeDataProviderMac::HasCustomFormat(
|
| return [[pasteboard_->get() types] containsObject:format.ToNSString()];
|
| }
|
|
|
| +void OSExchangeDataProviderMac::SetDragImage(
|
| + const gfx::ImageSkia& image,
|
| + const gfx::Vector2d& cursor_offset) {
|
| + drag_image_ = image;
|
| + cursor_offset_ = cursor_offset;
|
| +}
|
| +
|
| +const gfx::ImageSkia& OSExchangeDataProviderMac::GetDragImage() const {
|
| + return drag_image_;
|
| +}
|
| +
|
| +const gfx::Vector2d& OSExchangeDataProviderMac::GetDragImageOffset() const {
|
| + return cursor_offset_;
|
| +}
|
| +
|
| +NSData* OSExchangeDataProviderMac::GetNSDataForType(NSString* type) const {
|
| + return [pasteboard_->get() dataForType:type];
|
| +}
|
| +
|
| +std::unique_ptr<OSExchangeData>
|
| +OSExchangeDataProviderMac::CreateDataFromPasteboard(NSPasteboard* pasteboard) {
|
| + OSExchangeDataProviderMac* provider = new OSExchangeDataProviderMac();
|
| +
|
| + for (NSPasteboardItem* item in [pasteboard pasteboardItems])
|
| + ClipboardUtil::AddDataToPasteboard(provider->pasteboard_->get(), item);
|
| +
|
| + return base::WrapUnique(new OSExchangeData(provider));
|
| +}
|
| +
|
| +NSArray* OSExchangeDataProviderMac::SupportedPasteboardTypes() {
|
| + return @[
|
| + kWebCustomDataPboardType, ui::ClipboardUtil::UTIForWebURLsAndTitles(),
|
| + NSURLPboardType, NSPasteboardTypeString, NSFilenamesPboardType
|
| + ];
|
| +}
|
| +
|
| ///////////////////////////////////////////////////////////////////////////////
|
| // OSExchangeData, public:
|
|
|
|
|