#ifndef CUTANDPASTE_H
#define CUTANDPASTE_H
-#include "support/docstring.h"
#include "TextClassPtr.h"
+#include "support/types.h"
+#include "support/docstring.h"
+
+#include "frontends/Clipboard.h"
+
#include <vector>
+using lyx::frontend::Clipboard;
+
namespace lyx {
class Buffer;
class ErrorList;
class InsetText;
-class TextClass;
class Cursor;
class ParagraphList;
/// Paste the current selection at \p cur
/// Does handle undo. Does only work in text, not mathed.
void pasteSelection(Cursor & cur, ErrorList &);
-/// Replace the current selection with the clipboard contents (internal or
-/// external: which is newer)
+/// Replace the current selection with the clipboard contents as text
+/// (internal or external: which is newer).
+/// Does handle undo. Does only work in text, not mathed.
+void pasteClipboardText(Cursor & cur, ErrorList & errorList,
+ bool asParagraphs = true);
+/// Replace the current selection with the clipboard contents as graphic.
/// Does handle undo. Does only work in text, not mathed.
-void pasteClipboard(Cursor & cur, ErrorList & errorList, bool asParagraphs = true);
+void pasteClipboardGraphics(Cursor & cur, ErrorList & errorList,
+ Clipboard::GraphicsType preferedType = Clipboard::AnyGraphicsType);
/// Replace the current selection with cut buffer \c sel_index
/// Does handle undo. Does only work in text, not mathed.
void pasteFromStack(Cursor & cur, ErrorList & errorList, size_t sel_index);