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

Side by Side Diff: base/clipboard_mac.mm

Issue 10955: Implement the WebSmartPaste pasteboard type on Mac, stub it out on Linux, rem... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 12 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/clipboard_linux.cc ('k') | base/scoped_clipboard_writer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/clipboard.h" 5 #include "base/clipboard.h"
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
11 #include "base/sys_string_conversions.h" 11 #include "base/sys_string_conversions.h"
12 12
13 namespace { 13 namespace {
14 14
15 // Would be nice if this were in UTCoreTypes.h, but it isn't 15 // Would be nice if this were in UTCoreTypes.h, but it isn't
16 const NSString* kUTTypeURLName = @"public.url-name"; 16 const NSString* kUTTypeURLName = @"public.url-name";
17 17
18 // Tells us if WebKit was the last to write to the pasteboard. There's no
19 // actual data associated with this type.
20 const NSString *kWebSmartPastePboardType = @"NeXT smart paste pasteboard type";
21
18 NSPasteboard* GetPasteboard() { 22 NSPasteboard* GetPasteboard() {
19 // The pasteboard should not be nil in a UI session, but this handy DCHECK 23 // The pasteboard should not be nil in a UI session, but this handy DCHECK
20 // can help track down problems if someone tries using clipboard code outside 24 // can help track down problems if someone tries using clipboard code outside
21 // of a UI session. 25 // of a UI session.
22 NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; 26 NSPasteboard* pasteboard = [NSPasteboard generalPasteboard];
23 DCHECK(pasteboard); 27 DCHECK(pasteboard);
24 return pasteboard; 28 return pasteboard;
25 } 29 }
26 30
27 } // namespace 31 } // namespace
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 current_filename_offset = i + 1; 118 current_filename_offset = i + 1;
115 continue; 119 continue;
116 } 120 }
117 } 121 }
118 122
119 NSPasteboard* pb = GetPasteboard(); 123 NSPasteboard* pb = GetPasteboard();
120 [pb addTypes:[NSArray arrayWithObject:NSFilenamesPboardType] owner:nil]; 124 [pb addTypes:[NSArray arrayWithObject:NSFilenamesPboardType] owner:nil];
121 [pb setPropertyList:fileList forType:NSFilenamesPboardType]; 125 [pb setPropertyList:fileList forType:NSFilenamesPboardType];
122 } 126 }
123 127
128 // Write an extra flavor that signifies WebKit was the last to modify the
129 // pasteboard. This flavor has no data.
130 void Clipboard::WriteWebSmartPaste() {
131 NSPasteboard* pb = GetPasteboard();
132 [pb addTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
133 [pb setData:nil forType:GetWebKitSmartPasteFormatType()];
134 }
135
124 bool Clipboard::IsFormatAvailable(NSString* format) const { 136 bool Clipboard::IsFormatAvailable(NSString* format) const {
125 NSPasteboard* pb = GetPasteboard(); 137 NSPasteboard* pb = GetPasteboard();
126 NSArray* types = [pb types]; 138 NSArray* types = [pb types];
127 139
128 return [types containsObject:format]; 140 return [types containsObject:format];
129 } 141 }
130 142
131 void Clipboard::ReadText(std::wstring* result) const { 143 void Clipboard::ReadText(std::wstring* result) const {
132 NSPasteboard* pb = GetPasteboard(); 144 NSPasteboard* pb = GetPasteboard();
133 NSString* contents = [pb stringForType:NSStringPboardType]; 145 NSString* contents = [pb stringForType:NSStringPboardType];
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 255
244 // static 256 // static
245 Clipboard::FormatType Clipboard::GetFilenameWFormatType() { 257 Clipboard::FormatType Clipboard::GetFilenameWFormatType() {
246 return NSFilenamesPboardType; 258 return NSFilenamesPboardType;
247 } 259 }
248 260
249 // static 261 // static
250 Clipboard::FormatType Clipboard::GetHtmlFormatType() { 262 Clipboard::FormatType Clipboard::GetHtmlFormatType() {
251 return NSHTMLPboardType; 263 return NSHTMLPboardType;
252 } 264 }
265
266 // static
267 Clipboard::FormatType Clipboard::GetWebKitSmartPasteFormatType() {
268 return kWebSmartPastePboardType;
269 }
OLDNEW
« no previous file with comments | « base/clipboard_linux.cc ('k') | base/scoped_clipboard_writer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698