• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // 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.
4 
5 #ifndef WEBCLIPBOARD_IMPL_H_
6 #define WEBCLIPBOARD_IMPL_H_
7 
8 #include "third_party/WebKit/Source/WebKit/chromium/public/WebClipboard.h"
9 #include "ui/base/clipboard/clipboard.h"
10 
11 #include <string>
12 
13 namespace webkit_glue {
14 
15 class 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 
22   virtual ~WebClipboardImpl();
23 
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);
28   virtual WebKit::WebData readImage(Buffer);
29   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);
42   virtual void writeData(
43       const WebKit::WebString& type,
44       const WebKit::WebString& data,
45       const WebKit::WebString& metadata);
46 
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:
54   bool ConvertBufferType(Buffer, ui::Clipboard::Buffer*);
55 };
56 
57 }  // namespace webkit_glue
58 
59 #endif  // WEBCLIPBOARD_IMPL_H_
60