Refactor management of overview window copy lifetime into a separate class.
[chromium-blink-merge.git] / content / renderer / clipboard_client.h
blob14a00076092691daf0bd416c119e4c5316c8f69c
1 // Copyright (c) 2013 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.
5 #ifndef CONTENT_RENDERER_CLIPBOARD_CLIENT_H_
6 #define CONTENT_RENDERER_CLIPBOARD_CLIENT_H_
8 #include "ui/base/clipboard/clipboard.h"
10 class GURL;
12 namespace content {
14 // Interface for the content embedder to implement to support clipboard.
15 class ClipboardClient {
16 public:
17 class WriteContext {
18 public:
19 virtual ~WriteContext() { }
21 // Writes bitmap data into the context, updating the ObjectMap.
22 virtual void WriteBitmapFromPixels(ui::Clipboard::ObjectMap* objects,
23 const void* pixels,
24 const gfx::Size& size) = 0;
26 // Flushes all gathered data.
27 virtual void Flush(const ui::Clipboard::ObjectMap& objects) = 0;
30 virtual ~ClipboardClient() { }
32 // Get a clipboard that can be used to construct a ScopedClipboardWriterGlue.
33 virtual ui::Clipboard* GetClipboard() = 0;
35 // Get a sequence number which uniquely identifies clipboard state.
36 virtual uint64 GetSequenceNumber(ui::ClipboardType type) = 0;
38 // Tests whether the clipboard contains a certain format
39 virtual bool IsFormatAvailable(const ui::Clipboard::FormatType& format,
40 ui::ClipboardType type) = 0;
42 // Clear the contents of the clipboard.
43 virtual void Clear(ui::ClipboardType type) = 0;
45 // Reads the available types from the clipboard, if available.
46 virtual void ReadAvailableTypes(ui::ClipboardType type,
47 std::vector<base::string16>* types,
48 bool* contains_filenames) = 0;
50 // Reads UNICODE text from the clipboard, if available.
51 virtual void ReadText(ui::ClipboardType type,
52 base::string16* result) = 0;
54 // Reads ASCII text from the clipboard, if available.
55 virtual void ReadAsciiText(ui::ClipboardType type,
56 std::string* result) = 0;
58 // Reads HTML from the clipboard, if available.
59 virtual void ReadHTML(ui::ClipboardType type,
60 base::string16* markup,
61 GURL* url,
62 uint32* fragment_start,
63 uint32* fragment_end) = 0;
65 // Reads RTF from the clipboard, if available.
66 virtual void ReadRTF(ui::ClipboardType type, std::string* result) = 0;
68 // Reads and image from the clipboard, if available.
69 virtual void ReadImage(ui::ClipboardType type, std::string* data) = 0;
71 // Reads a custom data type from the clipboard, if available.
72 virtual void ReadCustomData(ui::ClipboardType clipboard_type,
73 const base::string16& type,
74 base::string16* data) = 0;
76 // Reads raw data from the clipboard for a given format.
77 virtual void ReadData(const ui::Clipboard::FormatType& format,
78 std::string* data) = 0;
80 // Creates a context to write clipboard data. May return NULL.
81 virtual WriteContext* CreateWriteContext() = 0;
84 } // namespace content
86 #endif // CONTENT_RENDERER_CLIPBOARD_CLIENT_H_