Index: ui/base/clipboard/clipboard_mac.mm |
diff --git a/ui/base/clipboard/clipboard_mac.mm b/ui/base/clipboard/clipboard_mac.mm |
index 88a9ff17802ba36264fc6a8a0f4027ae3400d1c7..63c1edf7cf5de8579b8912b73e7323c9ff45d9f7 100644 |
--- a/ui/base/clipboard/clipboard_mac.mm |
+++ b/ui/base/clipboard/clipboard_mac.mm |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "ui/base/clipboard/clipboard.h" |
+#include "ui/base/clipboard/clipboard_mac.h" |
#import <Cocoa/Cocoa.h> |
@@ -165,16 +165,22 @@ const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() { |
return type; |
} |
-// Clipboard implementation. |
-Clipboard::Clipboard() { |
+// Clipboard factory method. |
+// static |
+Clipboard* Clipboard::Create() { |
+ return new ClipboardMac; |
+} |
+ |
+// ClipboardMac implementation. |
+ClipboardMac::ClipboardMac() { |
DCHECK(CalledOnValidThread()); |
} |
-Clipboard::~Clipboard() { |
+ClipboardMac::~ClipboardMac() { |
DCHECK(CalledOnValidThread()); |
} |
-uint64 Clipboard::GetSequenceNumber(ClipboardType type) { |
+uint64 ClipboardMac::GetSequenceNumber(ClipboardType type) { |
DCHECK(CalledOnValidThread()); |
DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); |
@@ -182,8 +188,8 @@ uint64 Clipboard::GetSequenceNumber(ClipboardType type) { |
return [pb changeCount]; |
} |
-bool Clipboard::IsFormatAvailable(const FormatType& format, |
- ClipboardType type) const { |
+bool ClipboardMac::IsFormatAvailable(const FormatType& format, |
+ ClipboardType type) const { |
DCHECK(CalledOnValidThread()); |
DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); |
@@ -199,7 +205,7 @@ bool Clipboard::IsFormatAvailable(const FormatType& format, |
return [types containsObject:format.ToNSString()]; |
} |
-void Clipboard::Clear(ClipboardType type) { |
+void ClipboardMac::Clear(ClipboardType type) { |
DCHECK(CalledOnValidThread()); |
DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); |
@@ -207,9 +213,9 @@ void Clipboard::Clear(ClipboardType type) { |
[pb declareTypes:[NSArray array] owner:nil]; |
} |
-void Clipboard::ReadAvailableTypes(ClipboardType type, |
- std::vector<base::string16>* types, |
- bool* contains_filenames) const { |
+void ClipboardMac::ReadAvailableTypes(ClipboardType type, |
+ std::vector<base::string16>* types, |
+ bool* contains_filenames) const { |
DCHECK(CalledOnValidThread()); |
types->clear(); |
if (IsFormatAvailable(Clipboard::GetPlainTextFormatType(), type)) |
@@ -230,7 +236,7 @@ void Clipboard::ReadAvailableTypes(ClipboardType type, |
} |
} |
-void Clipboard::ReadText(ClipboardType type, base::string16* result) const { |
+void ClipboardMac::ReadText(ClipboardType type, base::string16* result) const { |
DCHECK(CalledOnValidThread()); |
DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); |
NSPasteboard* pb = GetPasteboard(); |
@@ -239,7 +245,8 @@ void Clipboard::ReadText(ClipboardType type, base::string16* result) const { |
*result = base::SysNSStringToUTF16(contents); |
} |
-void Clipboard::ReadAsciiText(ClipboardType type, std::string* result) const { |
+void ClipboardMac::ReadAsciiText(ClipboardType type, |
+ std::string* result) const { |
DCHECK(CalledOnValidThread()); |
DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); |
NSPasteboard* pb = GetPasteboard(); |
@@ -251,11 +258,11 @@ void Clipboard::ReadAsciiText(ClipboardType type, std::string* result) const { |
result->assign([contents UTF8String]); |
} |
-void Clipboard::ReadHTML(ClipboardType type, |
- base::string16* markup, |
- std::string* src_url, |
- uint32* fragment_start, |
- uint32* fragment_end) const { |
+void ClipboardMac::ReadHTML(ClipboardType type, |
+ base::string16* markup, |
+ std::string* src_url, |
+ uint32* fragment_start, |
+ uint32* fragment_end) const { |
DCHECK(CalledOnValidThread()); |
DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); |
@@ -282,14 +289,14 @@ void Clipboard::ReadHTML(ClipboardType type, |
*fragment_end = static_cast<uint32>(markup->length()); |
} |
-void Clipboard::ReadRTF(ClipboardType type, std::string* result) const { |
+void ClipboardMac::ReadRTF(ClipboardType type, std::string* result) const { |
DCHECK(CalledOnValidThread()); |
DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); |
return ReadData(GetRtfFormatType(), result); |
} |
-SkBitmap Clipboard::ReadImage(ClipboardType type) const { |
+SkBitmap ClipboardMac::ReadImage(ClipboardType type) const { |
DCHECK(CalledOnValidThread()); |
DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); |
@@ -307,9 +314,9 @@ SkBitmap Clipboard::ReadImage(ClipboardType type) const { |
return bitmap; |
} |
-void Clipboard::ReadCustomData(ClipboardType clipboard_type, |
- const base::string16& type, |
- base::string16* result) const { |
+void ClipboardMac::ReadCustomData(ClipboardType clipboard_type, |
+ const base::string16& type, |
+ base::string16* result) const { |
DCHECK(CalledOnValidThread()); |
DCHECK_EQ(clipboard_type, CLIPBOARD_TYPE_COPY_PASTE); |
@@ -321,7 +328,7 @@ void Clipboard::ReadCustomData(ClipboardType clipboard_type, |
} |
} |
-void Clipboard::ReadBookmark(base::string16* title, std::string* url) const { |
+void ClipboardMac::ReadBookmark(base::string16* title, std::string* url) const { |
DCHECK(CalledOnValidThread()); |
NSPasteboard* pb = GetPasteboard(); |
@@ -339,7 +346,8 @@ void Clipboard::ReadBookmark(base::string16* title, std::string* url) const { |
} |
} |
-void Clipboard::ReadData(const FormatType& format, std::string* result) const { |
+void ClipboardMac::ReadData(const FormatType& format, |
+ std::string* result) const { |
DCHECK(CalledOnValidThread()); |
NSPasteboard* pb = GetPasteboard(); |
NSData* data = [pb dataForType:format.ToNSString()]; |
@@ -347,35 +355,35 @@ void Clipboard::ReadData(const FormatType& format, std::string* result) const { |
result->assign(static_cast<const char*>([data bytes]), [data length]); |
} |
-void Clipboard::WriteObjects(ClipboardType type, const ObjectMap& objects) { |
+void ClipboardMac::WriteObjects(ClipboardType type, const ObjectMap& objects) { |
DCHECK(CalledOnValidThread()); |
DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); |
NSPasteboard* pb = GetPasteboard(); |
[pb declareTypes:[NSArray array] owner:nil]; |
- for (ObjectMap::const_iterator iter = objects.begin(); |
- iter != objects.end(); ++iter) { |
+ for (ObjectMap::const_iterator iter = objects.begin(); iter != objects.end(); |
+ ++iter) { |
DispatchObject(static_cast<ObjectType>(iter->first), iter->second); |
} |
} |
-void Clipboard::WriteText(const char* text_data, size_t text_len) { |
+void ClipboardMac::WriteText(const char* text_data, size_t text_len) { |
std::string text_str(text_data, text_len); |
- NSString *text = base::SysUTF8ToNSString(text_str); |
+ NSString* text = base::SysUTF8ToNSString(text_str); |
NSPasteboard* pb = GetPasteboard(); |
[pb addTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil]; |
[pb setString:text forType:NSStringPboardType]; |
} |
-void Clipboard::WriteHTML(const char* markup_data, |
- size_t markup_len, |
- const char* url_data, |
- size_t url_len) { |
+void ClipboardMac::WriteHTML(const char* markup_data, |
+ size_t markup_len, |
+ const char* url_data, |
+ size_t url_len) { |
// We need to mark it as utf-8. (see crbug.com/11957) |
std::string html_fragment_str("<meta charset='utf-8'>"); |
html_fragment_str.append(markup_data, markup_len); |
- NSString *html_fragment = base::SysUTF8ToNSString(html_fragment_str); |
+ NSString* html_fragment = base::SysUTF8ToNSString(html_fragment_str); |
// TODO(avi): url_data? |
NSPasteboard* pb = GetPasteboard(); |
@@ -383,18 +391,18 @@ void Clipboard::WriteHTML(const char* markup_data, |
[pb setString:html_fragment forType:NSHTMLPboardType]; |
} |
-void Clipboard::WriteRTF(const char* rtf_data, size_t data_len) { |
+void ClipboardMac::WriteRTF(const char* rtf_data, size_t data_len) { |
WriteData(GetRtfFormatType(), rtf_data, data_len); |
} |
-void Clipboard::WriteBookmark(const char* title_data, |
- size_t title_len, |
- const char* url_data, |
- size_t url_len) { |
+void ClipboardMac::WriteBookmark(const char* title_data, |
+ size_t title_len, |
+ const char* url_data, |
+ size_t url_len) { |
std::string title_str(title_data, title_len); |
- NSString *title = base::SysUTF8ToNSString(title_str); |
+ NSString* title = base::SysUTF8ToNSString(title_str); |
std::string url_str(url_data, url_len); |
- NSString *url = base::SysUTF8ToNSString(url_str); |
+ NSString* url = base::SysUTF8ToNSString(url_str); |
// TODO(playmobil): In the Windows version of this function, an HTML |
// representation of the bookmark is also added to the clipboard, to support |
@@ -404,31 +412,29 @@ void Clipboard::WriteBookmark(const char* title_data, |
NSPasteboard* pb = GetPasteboard(); |
// passing UTIs into the pasteboard methods is valid >= 10.5 |
- [pb addTypes:[NSArray arrayWithObjects:NSURLPboardType, |
- kUTTypeURLName, |
- nil] |
+ [pb addTypes:[NSArray arrayWithObjects:NSURLPboardType, kUTTypeURLName, nil] |
owner:nil]; |
[nsurl writeToPasteboard:pb]; |
[pb setString:title forType:kUTTypeURLName]; |
} |
-void Clipboard::WriteBitmap(const SkBitmap& bitmap) { |
+void ClipboardMac::WriteBitmap(const SkBitmap& bitmap) { |
NSImage* image = gfx::SkBitmapToNSImageWithColorSpace( |
bitmap, base::mac::GetSystemColorSpace()); |
// An API to ask the NSImage to write itself to the clipboard comes in 10.6 :( |
// For now, spit out the image as a TIFF. |
NSPasteboard* pb = GetPasteboard(); |
[pb addTypes:[NSArray arrayWithObject:NSTIFFPboardType] owner:nil]; |
- NSData *tiff_data = [image TIFFRepresentation]; |
+ NSData* tiff_data = [image TIFFRepresentation]; |
LOG_IF(ERROR, tiff_data == NULL) << "Failed to allocate image for clipboard"; |
if (tiff_data) { |
[pb setData:tiff_data forType:NSTIFFPboardType]; |
} |
} |
-void Clipboard::WriteData(const FormatType& format, |
- const char* data_data, |
- size_t data_len) { |
+void ClipboardMac::WriteData(const FormatType& format, |
+ const char* data_data, |
+ size_t data_len) { |
NSPasteboard* pb = GetPasteboard(); |
[pb addTypes:[NSArray arrayWithObject:format.ToNSString()] owner:nil]; |
[pb setData:[NSData dataWithBytes:data_data length:data_len] |
@@ -437,7 +443,7 @@ void Clipboard::WriteData(const FormatType& format, |
// Write an extra flavor that signifies WebKit was the last to modify the |
// pasteboard. This flavor has no data. |
-void Clipboard::WriteWebSmartPaste() { |
+void ClipboardMac::WriteWebSmartPaste() { |
NSPasteboard* pb = GetPasteboard(); |
NSString* format = GetWebKitSmartPasteFormatType().ToNSString(); |
[pb addTypes:[NSArray arrayWithObject:format] owner:nil]; |