]> git.lyx.org Git - lyx.git/blobdiff - src/CutAndPaste.h
This is the first of a series of commits that will make InsetLayout a real class.
[lyx.git] / src / CutAndPaste.h
index 220e2e217f31e5e88e8f2f658dd1fa995f6ba75c..e3ba435b03416560aa8cffe6192800d3aaae8bbb 100644 (file)
 #ifndef CUTANDPASTE_H
 #define CUTANDPASTE_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;
 
@@ -51,7 +57,7 @@ void replaceSelection(Cursor & cur);
 /**
  * Cut the current selection and possibly push it to the cut buffer and
  * system clipboard.
- * Does handle undo.
+ * Does handle undo. Calls saveSelection.
  * \param doclear If this is true: Delete leading spaces in paragraphs before
  *                they get merged.
  * \param realcut If this is true: Push the selection to the cut buffer and
@@ -75,13 +81,20 @@ void saveSelection(Cursor & cur);
 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 (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);
@@ -89,21 +102,22 @@ 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,
-                       textclass_type textclass, ErrorList & errorList);
+                       TextClassPtr 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(textclass_type c1, textclass_type c2,
-                         InsetText & in, ErrorList &);
+void switchBetweenClasses(TextClassPtr const & c1, 
+       TextClassPtr const & c2, InsetText & in, ErrorList &);
 
 /// Get the current selection as a string. Does not change the selection.
 /// Does only work if the whole selection is in mathed.
 docstring grabSelection(Cursor const & cur);
 /// Erase the current selection.
 /// Does not handle undo. Does only work if the whole selection is in mathed.
+/// Calls saveSelection.
 void eraseSelection(Cursor & cur);
 /// Erase the selection and return it as a string.
 /// Does not handle undo. Does only work if the whole selection is in mathed.