summaryrefslogtreecommitdiffstats
path: root/webkit/glue/simple_clipboard_impl.cc
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-05 01:34:30 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-05 01:34:30 +0000
commit3ee3ffd1d79a0c1544f3bfd70c7de7606df9482f (patch)
tree0943a0925f5974478463e5d00886be29109858e6 /webkit/glue/simple_clipboard_impl.cc
parent38733063b7e1cf0b6e67c0b590773ff4f1aaa18d (diff)
downloadchromium_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.cc41
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
-