diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-05 01:34:30 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-05 01:34:30 +0000 |
commit | 3ee3ffd1d79a0c1544f3bfd70c7de7606df9482f (patch) | |
tree | 0943a0925f5974478463e5d00886be29109858e6 /webkit/glue/simple_clipboard_impl.cc | |
parent | 38733063b7e1cf0b6e67c0b590773ff4f1aaa18d (diff) | |
download | chromium_src-3ee3ffd1d79a0c1544f3bfd70c7de7606df9482f.zip chromium_src-3ee3ffd1d79a0c1544f3bfd70c7de7606df9482f.tar.gz chromium_src-3ee3ffd1d79a0c1544f3bfd70c7de7606df9482f.tar.bz2 |
Rewrote the clipboard API to be more concurrent. Added a helper class to make it more foolproof. Updated all clients and unittests. Mac port by jeremy@chromium.org
Review URL: http://codereview.chromium.org/9154
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4719 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/simple_clipboard_impl.cc')
-rw-r--r-- | webkit/glue/simple_clipboard_impl.cc | 41 |
1 files changed, 13 insertions, 28 deletions
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 - |