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