- add sources.
[platform/framework/web/crosswalk.git] / src / content / renderer / scoped_clipboard_writer_glue.cc
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/renderer/scoped_clipboard_writer_glue.h"
6 #include "base/logging.h"
7
8 namespace content {
9
10 ScopedClipboardWriterGlue::ScopedClipboardWriterGlue(ClipboardClient* client)
11     : ui::ScopedClipboardWriter(client->GetClipboard(),
12                                 ui::CLIPBOARD_TYPE_COPY_PASTE),
13       context_(client->CreateWriteContext()) {
14   // We should never have an instance where both are set.
15   DCHECK((clipboard_ && !context_.get()) ||
16          (!clipboard_ && context_.get()));
17 }
18
19 ScopedClipboardWriterGlue::~ScopedClipboardWriterGlue() {
20   if (!objects_.empty() && context_) {
21     context_->Flush(objects_);
22   }
23 }
24
25 void ScopedClipboardWriterGlue::WriteBitmapFromPixels(const void* pixels,
26                                                       const gfx::Size& size) {
27   if (context_) {
28     context_->WriteBitmapFromPixels(&objects_, pixels, size);
29   } else {
30     ScopedClipboardWriter::WriteBitmapFromPixels(pixels, size);
31   }
32 }
33
34 }  // namespace content
35