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"
14 // Interface for the content embedder to implement to support clipboard.
15 class ClipboardClient
{
19 virtual ~WriteContext() { }
21 // Writes bitmap data into the context, updating the ObjectMap.
22 virtual void WriteBitmapFromPixels(ui::Clipboard::ObjectMap
* objects
,
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
,
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_