-int nrOfParagraphs();
-
-/** needed to switch between different classes this works
- for a list of paragraphs beginning with the specified par
- return value is the number of wrong conversions
-*/
-int SwitchLayoutsBetweenClasses(lyx::textclass_type c1,
- lyx::textclass_type c2,
- Paragraph * par,
- BufferParams const & bparams);
-///
-bool checkPastePossible();
+void copyInset(Cursor const & cur, Inset * inset, docstring const & plaintext);
+/**
+ * Push the current selection to the cut buffer and the system clipboard.
+ * \param plaintext plain text version of the selection for the system
+ * clipboard
+ */
+void copySelection(Cursor const & cur, docstring const & plaintext);
+/// Push the selection buffer to the cut buffer.
+void copySelectionToStack();
+/// Store the current selection in the internal selection buffer
+void saveSelection(Cursor const & cur);
+/// Is a selection available in our selection buffer?
+bool selection();
+/// Clear our selection buffer
+void clearSelection();
+/// Clear our cut stack.
+void clearCutStack();
+/// 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 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 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);
+
+/// Paste the paragraph list \p parlist at the position given by \p cur.
+/// Does not handle undo. Does only work in text, not mathed.
+void pasteParagraphList(Cursor & cur, ParagraphList const & parlist,
+ DocumentClass const * const textclass, ErrorList & errorList);
+
+
+/** Needed to switch between different classes. This works
+ * for a list of paragraphs beginning with the specified par.
+ * It changes layouts and character styles.
+ */
+void switchBetweenClasses(DocumentClass const * const c1,
+ DocumentClass const * const c2, InsetText & in, ErrorList &);