| OLD | NEW |
| 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 // This file implements the ScopedClipboardWriter class. Documentation on its | 5 // This file implements the ScopedClipboardWriter class. Documentation on its |
| 6 // purpose can be found in base/scoped_clipboard_writer.h. Documentation on the | 6 // purpose can be found in base/scoped_clipboard_writer.h. Documentation on the |
| 7 // format of the parameters for each clipboard target can be found in | 7 // format of the parameters for each clipboard target can be found in |
| 8 // base/clipboard.h. | 8 // base/clipboard.h. |
| 9 |
| 9 #include "base/scoped_clipboard_writer.h" | 10 #include "base/scoped_clipboard_writer.h" |
| 10 | 11 |
| 11 #include "base/gfx/size.h" | 12 #include "base/gfx/size.h" |
| 13 #include "base/pickle.h" |
| 12 #include "base/string_util.h" | 14 #include "base/string_util.h" |
| 13 | 15 |
| 14 ScopedClipboardWriter::ScopedClipboardWriter(Clipboard* clipboard) | 16 ScopedClipboardWriter::ScopedClipboardWriter(Clipboard* clipboard) |
| 15 : clipboard_(clipboard) { | 17 : clipboard_(clipboard) { |
| 16 } | 18 } |
| 17 | 19 |
| 18 ScopedClipboardWriter::~ScopedClipboardWriter() { | 20 ScopedClipboardWriter::~ScopedClipboardWriter() { |
| 19 if (!objects_.empty() && clipboard_) | 21 if (!objects_.empty() && clipboard_) |
| 20 clipboard_->WriteObjects(objects_); | 22 clipboard_->WriteObjects(objects_); |
| 21 } | 23 } |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 const char* size_data = reinterpret_cast<const char*>(&size); | 134 const char* size_data = reinterpret_cast<const char*>(&size); |
| 133 size_t size_length = sizeof(gfx::Size); | 135 size_t size_length = sizeof(gfx::Size); |
| 134 for (size_t i = 0; i < size_length; i++) | 136 for (size_t i = 0; i < size_length; i++) |
| 135 size_parameter.push_back(size_data[i]); | 137 size_parameter.push_back(size_data[i]); |
| 136 | 138 |
| 137 Clipboard::ObjectMapParams parameters; | 139 Clipboard::ObjectMapParams parameters; |
| 138 parameters.push_back(pixels_parameter); | 140 parameters.push_back(pixels_parameter); |
| 139 parameters.push_back(size_parameter); | 141 parameters.push_back(size_parameter); |
| 140 objects_[Clipboard::CBF_BITMAP] = parameters; | 142 objects_[Clipboard::CBF_BITMAP] = parameters; |
| 141 } | 143 } |
| 144 |
| 145 void ScopedClipboardWriter::WritePickledData(const Pickle& pickle, |
| 146 Clipboard::FormatType format) { |
| 147 Clipboard::ObjectMapParam format_parameter(format.begin(), format.end()); |
| 148 Clipboard::ObjectMapParam data_parameter; |
| 149 |
| 150 data_parameter.resize(pickle.size()); |
| 151 memcpy(const_cast<char*>(&data_parameter.front()), |
| 152 pickle.data(), pickle.size()); |
| 153 |
| 154 Clipboard::ObjectMapParams parameters; |
| 155 parameters.push_back(format_parameter); |
| 156 parameters.push_back(data_parameter); |
| 157 objects_[Clipboard::CBF_DATA] = parameters; |
| 158 } |
| OLD | NEW |