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: |