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..b7f9811ccc9643d1ad31d58e79dce2287214db86 100644 |
--- a/ui/base/dragdrop/os_exchange_data_provider_mac.mm |
+++ b/ui/base/dragdrop/os_exchange_data_provider_mac.mm |
@@ -12,6 +12,7 @@ |
#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/dragdrop/cocoa_dnd_util.h" |
#include "url/gurl.h" |
namespace ui { |
@@ -69,6 +70,14 @@ void OSExchangeDataProviderMac::SetPickledData( |
[pasteboard_->get() setData:ns_data forType:format.ToNSString()]; |
} |
+void OSExchangeDataProviderMac::SetDragImage(const gfx::ImageSkia& image) { |
+ drag_image_ = image; |
+} |
+ |
+void OSExchangeDataProviderMac::SetNativeEvent(const base::NativeEvent& event) { |
+ event_ = event; |
+} |
+ |
bool OSExchangeDataProviderMac::GetString(base::string16* data) const { |
DCHECK(data); |
NSString* item = [pasteboard_->get() stringForType:NSPasteboardTypeString]; |
@@ -76,7 +85,6 @@ bool OSExchangeDataProviderMac::GetString(base::string16* data) const { |
*data = base::SysNSStringToUTF16(item); |
return true; |
} |
- |
// There was no NSString, check for an NSURL. |
GURL url; |
base::string16 title; |
@@ -148,6 +156,18 @@ bool OSExchangeDataProviderMac::GetPickledData( |
return true; |
} |
+const gfx::ImageSkia& OSExchangeDataProviderMac::GetDragImage() const { |
+ return drag_image_; |
+} |
+ |
+const base::NativeEvent& OSExchangeDataProviderMac::GetNativeEvent() const { |
+ return event_; |
+} |
+ |
+NSData* OSExchangeDataProviderMac::GetNSDataForType(NSString* type) const { |
+ return [pasteboard_->get() dataForType:type]; |
+} |
+ |
bool OSExchangeDataProviderMac::HasString() const { |
base::string16 string; |
return GetString(&string); |
@@ -169,6 +189,29 @@ bool OSExchangeDataProviderMac::HasCustomFormat( |
return [[pasteboard_->get() types] containsObject:format.ToNSString()]; |
} |
+NSArray* OSExchangeDataProviderMac::GetPasteboardTypes() const { |
+ return [pasteboard_->get() types]; |
+} |
+ |
+OSExchangeData::Provider* |
+OSExchangeDataProviderMac::CreateProviderFromPasteboard( |
+ NSPasteboard* pasteboard) { |
+ OSExchangeDataProviderMac* provider = new OSExchangeDataProviderMac(); |
+ |
+ for (NSPasteboardItem* item in [pasteboard pasteboardItems]) { |
+ ClipboardUtil::AddDataToPasteboard(provider->pasteboard_->get(), item); |
+ } |
+ |
+ return provider; |
+} |
+ |
+NSArray* OSExchangeDataProviderMac::SupportedPasteboardTypes() { |
+ return @[ |
+ ui::ClipboardUtil::UTIForWebURLsAndTitles(), NSURLPboardType, |
+ NSPasteboardTypeString, NSFilenamesPboardType |
+ ]; |
+} |
+ |
/////////////////////////////////////////////////////////////////////////////// |
// OSExchangeData, public: |