Index: ui/base/clipboard/clipboard_aura.cc |
diff --git a/ui/base/clipboard/clipboard_aura.cc b/ui/base/clipboard/clipboard_aura.cc |
index c3f4c87dca030b3f46a8e16c696edc8f93659589..4f19f1c623ac401df4eebcf1c185741271605679 100644 |
--- a/ui/base/clipboard/clipboard_aura.cc |
+++ b/ui/base/clipboard/clipboard_aura.cc |
@@ -5,6 +5,7 @@ |
#include "ui/base/clipboard/clipboard.h" |
#include "base/logging.h" |
+#include "base/utf_string_conversions.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
namespace ui { |
@@ -12,8 +13,35 @@ namespace ui { |
namespace { |
const char kMimeTypeBitmap[] = "image/bmp"; |
const char kMimeTypeWebkitSmartPaste[] = "chromium/x-webkit-paste"; |
+ |
+// A mimimum clipboard implementation for simple text cut&paste. |
+class ClipboardData { |
+ public: |
+ ClipboardData() {} |
+ virtual ~ClipboardData() {} |
+ |
+ const std::string& text() const { return utf8_text_; } |
+ |
+ void set_text(const std::string& text) { |
+ utf8_text_ = text; |
+ } |
+ |
+ private: |
+ std::string utf8_text_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ClipboardData); |
+}; |
+ |
+ClipboardData* data = NULL; |
+ |
+ClipboardData* GetClipboardData() { |
+ if (!data) |
+ data = new ClipboardData(); |
+ return data; |
} |
+} // namespace |
+ |
Clipboard::Clipboard() { |
NOTIMPLEMENTED(); |
} |
@@ -22,6 +50,10 @@ Clipboard::~Clipboard() { |
} |
void Clipboard::WriteObjects(const ObjectMap& objects) { |
+ for (ObjectMap::const_iterator iter = objects.begin(); |
+ iter != objects.end(); ++iter) { |
+ DispatchObject(static_cast<ObjectType>(iter->first), iter->second); |
+ } |
NOTIMPLEMENTED(); |
sadrul
2011/10/06 19:53:59
Can this be removed now? Or are there more things
oshima
2011/10/06 20:01:05
removed.
|
} |
@@ -53,11 +85,11 @@ void Clipboard::ReadAvailableTypes(Buffer buffer, std::vector<string16>* types, |
} |
void Clipboard::ReadText(Buffer buffer, string16* result) const { |
- NOTIMPLEMENTED(); |
+ *result = UTF8ToUTF16(GetClipboardData()->text()); |
} |
void Clipboard::ReadAsciiText(Buffer buffer, std::string* result) const { |
- NOTIMPLEMENTED(); |
+ *result = GetClipboardData()->text(); |
} |
void Clipboard::ReadHTML(Buffer buffer, string16* markup, |
@@ -92,7 +124,7 @@ uint64 Clipboard::GetSequenceNumber() { |
} |
void Clipboard::WriteText(const char* text_data, size_t text_len) { |
- NOTIMPLEMENTED(); |
+ GetClipboardData()->set_text(std::string(text_data, text_len)); |
} |
void Clipboard::WriteHTML(const char* markup_data, |