diff options
Diffstat (limited to 'webkit/glue')
-rw-r--r-- | webkit/glue/scoped_clipboard_writer_glue.h | 29 | ||||
-rw-r--r-- | webkit/glue/simple_clipboard_impl.cc | 41 | ||||
-rw-r--r-- | webkit/glue/webkit_glue.h | 22 |
3 files changed, 45 insertions, 47 deletions
diff --git a/webkit/glue/scoped_clipboard_writer_glue.h b/webkit/glue/scoped_clipboard_writer_glue.h new file mode 100644 index 0000000..5a3ecb5 --- /dev/null +++ b/webkit/glue/scoped_clipboard_writer_glue.h @@ -0,0 +1,29 @@ +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef SCOPED_CLIPBOARD_WRITER_GLUE_H__ +#define SCOPED_CLIPBOARD_WRITER_GLUE_H__ + +#include "base/clipboard.h" +#include "base/scoped_clipboard_writer.h" + +class ScopedClipboardWriterGlue : public ScopedClipboardWriter { + public: + ScopedClipboardWriterGlue(Clipboard* clipboard) + : ScopedClipboardWriter(clipboard), + shared_buf_(NULL) { + } + + ~ScopedClipboardWriterGlue(); + +#if defined(OS_WIN) + void ScopedClipboardWriterGlue::WriteBitmap(const SkBitmap& bitmap); +#endif + + private: + SharedMemory* shared_buf_; + DISALLOW_COPY_AND_ASSIGN(ScopedClipboardWriterGlue); +}; + +#endif // SCOPED_CLIPBOARD_WRITER_GLUE_H__ diff --git a/webkit/glue/simple_clipboard_impl.cc b/webkit/glue/simple_clipboard_impl.cc index e332a47..b60a36808 100644 --- a/webkit/glue/simple_clipboard_impl.cc +++ b/webkit/glue/simple_clipboard_impl.cc @@ -7,46 +7,32 @@ #include <string> #include "base/clipboard.h" +#include "webkit/glue/scoped_clipboard_writer_glue.h" #include "googleurl/src/gurl.h" #include "SkBitmap.h" // Clipboard glue -// Basically just proxy the calls off to the clipboard -namespace webkit_glue { - -Clipboard clipboard; - -void ClipboardClear() { - clipboard.Clear(); -} - -void ClipboardWriteText(const std::wstring& text) { - clipboard.WriteText(text); +#if defined(OS_WIN) +// The call is being made within the current process. +void ScopedClipboardWriterGlue::WriteBitmap(const SkBitmap& bitmap) { + SkAutoLockPixels bitmap_lock(bitmap); + WriteBitmapFromPixels(bitmap.getPixels(), gfx::Size(bitmap.width(), + bitmap.height())); } +#endif // defined(OS_WIN) -void ClipboardWriteHTML(const std::wstring& html, - const GURL& url) { - clipboard.WriteHTML(html, url.spec()); +ScopedClipboardWriterGlue::~ScopedClipboardWriterGlue() { } -void ClipboardWriteBookmark(const std::wstring& title, - const GURL& url) { - clipboard.WriteBookmark(title, url.spec()); -} +namespace webkit_glue { -#if defined(OS_WIN) -void ClipboardWriteBitmap(const SkBitmap& bitmap) { - SkAutoLockPixels bitmap_lock(bitmap); - clipboard.WriteBitmap(bitmap.getPixels(), - gfx::Size(bitmap.width(), bitmap.height())); -} +Clipboard clipboard; -void ClipboardWriteWebSmartPaste() { - clipboard.WriteWebSmartPaste(); +Clipboard* ClipboardGetClipboard() { + return &clipboard; } -#endif bool ClipboardIsFormatAvailable(Clipboard::FormatType format) { return clipboard.IsFormatAvailable(format); @@ -68,4 +54,3 @@ void ClipboardReadHTML(std::wstring* markup, GURL* url) { } } // namespace webkit_glue - diff --git a/webkit/glue/webkit_glue.h b/webkit/glue/webkit_glue.h index b8b2156..2691b25 100644 --- a/webkit/glue/webkit_glue.h +++ b/webkit/glue/webkit_glue.h @@ -42,6 +42,7 @@ class Frame; } class SkBitmap; +class Clipboard; #if defined(OS_MACOSX) typedef struct CGImage* CGImageRef; @@ -194,25 +195,8 @@ HCURSOR LoadCursor(int cursor_id); // Glue to access the clipboard. -// Clear the clipboard. It is usually a good idea to clear the clipboard -// before writing content to the clipboard. -void ClipboardClear(); - -// Adds UNICODE and ASCII text to the clipboard. -void ClipboardWriteText(const std::wstring& text); - -// Adds HTML to the clipboard. The url parameter is optional, but especially -// useful if the HTML fragment contains relative links -void ClipboardWriteHTML(const std::wstring& html, const GURL& url); - -// Adds a bookmark to the clipboard -void ClipboardWriteBookmark(const std::wstring& title, const GURL& url); - -// Adds a bitmap to the clipboard -void ClipboardWriteBitmap(const SkBitmap& bitmap); - -// Used by WebKit to determine whether WebKit wrote the clipboard last -void ClipboardWriteWebSmartPaste(); +// Get a clipboard that can be used to construct a ScopedClipboardWriterGlue. +Clipboard* ClipboardGetClipboard(); // Tests whether the clipboard contains a certain format bool ClipboardIsFormatAvailable(unsigned int format); |