Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Unified Diff: ui/base/clipboard/clipboard_mac.mm

Issue 8803006: Implement Clipboard::ReadData and Clipboard::WriteData for Mac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/base/clipboard/clipboard_mac.mm
diff --git a/ui/base/clipboard/clipboard_mac.mm b/ui/base/clipboard/clipboard_mac.mm
index ebeb90752c08b968382e056d537aecd955976ea1..f156a63d02aeb7ed8bc8064e5bca61478e1d807a 100644
--- a/ui/base/clipboard/clipboard_mac.mm
+++ b/ui/base/clipboard/clipboard_mac.mm
@@ -153,6 +153,17 @@ void Clipboard::WriteBitmap(const char* pixel_data, const char* size_data) {
}
}
+void Clipboard::WriteData(const char* format_name, size_t format_len,
+ const char* data_data, size_t data_len) {
+ NSPasteboard* pb = GetPasteboard();
+ NSString* format = [[NSString alloc] initWithBytes:format_name
+ length:format_len
+ encoding:NSUTF8StringEncoding];
+ [pb addTypes:[NSArray arrayWithObject:format] owner:nil];
+ [pb setData:[NSData dataWithBytes:data_data length:data_len]
+ forType:format];
+}
+
// Write an extra flavor that signifies WebKit was the last to modify the
// pasteboard. This flavor has no data.
void Clipboard::WriteWebSmartPaste() {
@@ -170,7 +181,7 @@ uint64 Clipboard::GetSequenceNumber(Buffer buffer) {
}
bool Clipboard::IsFormatAvailable(const Clipboard::FormatType& format,
- Clipboard::Buffer buffer) const {
+ Buffer buffer) const {
DCHECK_EQ(buffer, BUFFER_STANDARD);
NSString* format_ns = base::SysUTF8ToNSString(format);
@@ -186,6 +197,17 @@ bool Clipboard::IsFormatAvailable(const Clipboard::FormatType& format,
return [types containsObject:format_ns];
}
+bool Clipboard::IsFormatAvailableByString(const std::string& format,
+ Buffer buffer) const {
+ DCHECK_EQ(buffer, BUFFER_STANDARD);
+ NSString* format_ns = base::SysUTF8ToNSString(format);
+
+ NSPasteboard* pb = GetPasteboard();
+ NSArray* types = [pb types];
+
+ return [types containsObject:format_ns];
+}
+
void Clipboard::ReadAvailableTypes(Clipboard::Buffer buffer,
std::vector<string16>* types,
bool* contains_filenames) const {
@@ -342,6 +364,13 @@ void Clipboard::ReadFiles(std::vector<FilePath>* files) const {
}
}
+void Clipboard::ReadData(const std::string& format, std::string* result) const {
+ NSPasteboard* pb = GetPasteboard();
+ NSData* data = [pb dataForType:base::SysUTF8ToNSString(format)];
+ if ([data length])
+ result->assign(reinterpret_cast<const char*>([data bytes]), [data length]);
tony 2011/12/05 18:56:09 Nit: I think you can static_cast here.
dcheng 2011/12/05 19:53:03 Done.
+}
+
// static
Clipboard::FormatType Clipboard::GetUrlFormatType() {
return base::SysNSStringToUTF8(NSURLPboardType);

Powered by Google App Engine
This is Rietveld 408576698