OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/base/clipboard/clipboard.h" | 5 #include "ui/base/clipboard/clipboard.h" |
6 | 6 |
7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 nil] | 152 nil] |
153 owner:nil]; | 153 owner:nil]; |
154 [nsurl writeToPasteboard:pb]; | 154 [nsurl writeToPasteboard:pb]; |
155 [pb setString:title forType:kUTTypeURLName]; | 155 [pb setString:title forType:kUTTypeURLName]; |
156 } | 156 } |
157 | 157 |
158 void Clipboard::WriteBitmap(const char* pixel_data, const char* size_data) { | 158 void Clipboard::WriteBitmap(const char* pixel_data, const char* size_data) { |
159 const gfx::Size* size = reinterpret_cast<const gfx::Size*>(size_data); | 159 const gfx::Size* size = reinterpret_cast<const gfx::Size*>(size_data); |
160 | 160 |
161 // Safe because the image goes away before the call returns. | 161 // Safe because the image goes away before the call returns. |
162 base::mac::ScopedCFTypeRef<CFDataRef> data( | 162 base::ScopedCFTypeRef<CFDataRef> data( |
163 CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, | 163 CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, |
164 reinterpret_cast<const UInt8*>(pixel_data), | 164 reinterpret_cast<const UInt8*>(pixel_data), |
165 size->width()*size->height()*4, | 165 size->width() * size->height() * 4, |
166 kCFAllocatorNull)); | 166 kCFAllocatorNull)); |
167 | 167 |
168 base::mac::ScopedCFTypeRef<CGDataProviderRef> data_provider( | 168 base::ScopedCFTypeRef<CGDataProviderRef> data_provider( |
169 CGDataProviderCreateWithCFData(data)); | 169 CGDataProviderCreateWithCFData(data)); |
170 | 170 |
171 base::mac::ScopedCFTypeRef<CGImageRef> cgimage( | 171 base::ScopedCFTypeRef<CGImageRef> cgimage( |
172 CGImageCreate(size->width(), | 172 CGImageCreate(size->width(), |
173 size->height(), | 173 size->height(), |
174 8, | 174 8, |
175 32, | 175 32, |
176 size->width()*4, | 176 size->width() * 4, |
177 base::mac::GetSRGBColorSpace(), // TODO(avi): do better | 177 base::mac::GetSRGBColorSpace(), // TODO(avi): do better |
178 kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host, | 178 kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host, |
179 data_provider, | 179 data_provider, |
180 NULL, | 180 NULL, |
181 false, | 181 false, |
182 kCGRenderingIntentDefault)); | 182 kCGRenderingIntentDefault)); |
183 // Aggressively free storage since image buffers can potentially be very | 183 // Aggressively free storage since image buffers can potentially be very |
184 // large. | 184 // large. |
185 data_provider.reset(); | 185 data_provider.reset(); |
186 data.reset(); | 186 data.reset(); |
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
479 return type; | 479 return type; |
480 } | 480 } |
481 | 481 |
482 // static | 482 // static |
483 const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() { | 483 const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() { |
484 CR_DEFINE_STATIC_LOCAL(FormatType, type, (kPepperCustomDataPboardType)); | 484 CR_DEFINE_STATIC_LOCAL(FormatType, type, (kPepperCustomDataPboardType)); |
485 return type; | 485 return type; |
486 } | 486 } |
487 | 487 |
488 } // namespace ui | 488 } // namespace ui |
OLD | NEW |