4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Asger Alstrup
8 * \author Lars Gullik Bjønnes
10 * \author André Pönitz
11 * \author Jürgen Vigna
12 * \author Abdelrazak Younes
14 * Full author contact details are available in file CREDITS.
20 #include "support/types.h"
31 /// This is used to combine consecutive undo recordings of the same kind.
34 * Insert something - these will combine to one big chunk
35 * when many inserts come after each other.
39 * Delete something - these will combine to one big chunk
40 * when many deletes come after each other.
43 /// Atomic - each of these will have its own entry in the stack
56 /// Clear out all undo/redo contents.
59 /// this will undo the last action - returns false if no undo possible
60 bool textUndo(DocIterator &);
62 /// this will redo the last undo - returns false if no redo possible
63 bool textRedo(DocIterator &);
65 /// End a sequence of INSERT_UNDO or DELETE_UNDO type of undo
66 /// operations (grouping of consecutive characters insertion/deletion).
70 bool hasUndoStack() const;
72 bool hasRedoStack() const;
74 /// Mark all the elements of the undo and redo stacks as dirty
77 /// open a new group of undo operations.
79 * Groups can be nested. Such a nested group e.g. { {} {} } is undone in
80 * a single step. This means you can add a group whenever you are not sure.
82 void beginUndoGroup();
84 /// end the current undo group.
87 /// The general case: record undo information for an arbitrary range.
89 * Record undo information - call with the current cursor and
90 * the 'other end' of the range of changed paragraphs. So we
91 * give an inclusive range. This is called before you make the
92 * changes to the paragraph, and it will record the original
93 * information of the paragraphs in the undo stack.
95 void recordUndo(DocIterator const & cur, UndoKind kind,
96 pit_type from, pit_type to);
98 /// Convenience: record undo information for the range between
99 /// 'from' and cursor.
100 void recordUndo(DocIterator const & cur, UndoKind kind, pit_type from);
102 /// Convenience: record undo information for the single
103 /// paragraph or cell containing the cursor.
104 void recordUndo(DocIterator const & cur, UndoKind kind = ATOMIC_UNDO);
106 /// Convenience: record undo information for the inset
107 /// containing the cursor.
108 void recordUndoInset(DocIterator const & cur,
109 UndoKind kind = ATOMIC_UNDO,
110 Inset const * inset = 0);
112 /// Convenience: prepare undo for the whole buffer
113 void recordUndoFullDocument(DocIterator const & cur);