summaryrefslogtreecommitdiffstats
path: root/webkit/glue
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/glue')
-rw-r--r--webkit/glue/scoped_clipboard_writer_glue.h29
-rw-r--r--webkit/glue/simple_clipboard_impl.cc41
-rw-r--r--webkit/glue/webkit_glue.h22
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);