blob: c50f38d49ea644d827b9a12b203442f043fa5c68 [file] [log] [blame]
Kristian Monsen72a454c2011-05-31 20:30:28 +01001// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
Ben Murdochc407dc52010-07-29 17:14:53 +01004
5#ifndef WEBCLIPBOARD_IMPL_H_
6#define WEBCLIPBOARD_IMPL_H_
7
Kristian Monsen72a454c2011-05-31 20:30:28 +01008#include "third_party/WebKit/Source/WebKit/chromium/public/WebClipboard.h"
9#include "ui/base/clipboard/clipboard.h"
Ben Murdochc407dc52010-07-29 17:14:53 +010010
11#include <string>
12
13namespace webkit_glue {
14
15class WebClipboardImpl : public WebKit::WebClipboard {
16 public:
17 static std::string URLToMarkup(const WebKit::WebURL& url,
18 const WebKit::WebString& title);
19 static std::string URLToImageMarkup(const WebKit::WebURL& url,
20 const WebKit::WebString& title);
21
Iain Merrick3345a682010-10-19 14:37:37 +010022 virtual ~WebClipboardImpl();
Ben Murdochc407dc52010-07-29 17:14:53 +010023
24 // WebClipboard methods:
25 virtual bool isFormatAvailable(Format, Buffer);
26 virtual WebKit::WebString readPlainText(Buffer);
27 virtual WebKit::WebString readHTML(Buffer, WebKit::WebURL* source_url);
Kristian Monsenddb351d2011-06-28 21:49:31 +010028 virtual WebKit::WebData readImage(Buffer);
Ben Murdochc407dc52010-07-29 17:14:53 +010029 virtual void writeHTML(
30 const WebKit::WebString& html_text,
31 const WebKit::WebURL& source_url,
32 const WebKit::WebString& plain_text,
33 bool write_smart_paste);
34 virtual void writePlainText(const WebKit::WebString& plain_text);
35 virtual void writeURL(
36 const WebKit::WebURL&,
37 const WebKit::WebString& title);
38 virtual void writeImage(
39 const WebKit::WebImage&,
40 const WebKit::WebURL& source_url,
41 const WebKit::WebString& title);
Kristian Monsen72a454c2011-05-31 20:30:28 +010042 virtual void writeData(
43 const WebKit::WebString& type,
44 const WebKit::WebString& data,
45 const WebKit::WebString& metadata);
Ben Murdochc407dc52010-07-29 17:14:53 +010046
47 virtual WebKit::WebVector<WebKit::WebString> readAvailableTypes(
48 Buffer, bool* contains_filenames);
49 virtual bool readData(Buffer, const WebKit::WebString& type,
50 WebKit::WebString* data, WebKit::WebString* metadata);
51 virtual WebKit::WebVector<WebKit::WebString> readFilenames(Buffer);
52
53 private:
Kristian Monsen72a454c2011-05-31 20:30:28 +010054 bool ConvertBufferType(Buffer, ui::Clipboard::Buffer*);
Ben Murdochc407dc52010-07-29 17:14:53 +010055};
56
57} // namespace webkit_glue
58
59#endif // WEBCLIPBOARD_IMPL_H_