]> git.lyx.org Git - lyx.git/blobdiff - src/Cursor.h
Further cleanup of InsetFlex, InsetCollapsable and InsetLayout:
[lyx.git] / src / Cursor.h
index cf2344f2c6d53de788f809131d7441bdac754efa..1ee104cd52b8a6a9fcbcdb9d10c62c4315325b99 100644 (file)
@@ -14,8 +14,9 @@
 
 #include "DispatchResult.h"
 #include "DocIterator.h"
+#include "Font.h"
+#include "Undo.h"
 
-#include <iosfwd>
 #include <vector>
 
 
@@ -25,7 +26,6 @@ class Buffer;
 class BufferView;
 class FuncStatus;
 class FuncRequest;
-class Font;
 class Row;
 
 // these should go
@@ -61,6 +61,9 @@ public:
        /// sets cursor part
        void setCursor(DocIterator const & it);
 
+       ///
+       void setCurrentFont();
+
        //
        // selection
        //
@@ -179,12 +182,40 @@ public:
         * Not using noUpdate() should never be wrong.
         */
        void noUpdate();
-       /// fix cursor in circumstances that should never happen
-       void fixIfBroken();
+       /// fix cursor in circumstances that should never happen.
+       /// \retval true if a fix occured.
+       bool fixIfBroken();
 
        /// output
        friend std::ostream & operator<<(std::ostream & os, Cursor const & cur);
 
+       ///
+       bool textUndo();
+       ///
+       bool textRedo();
+
+       /// makes sure the next operation will be stored
+       void finishUndo();
+
+       /// The general case: prepare undo for an arbitrary range.
+       void recordUndo(UndoKind kind, pit_type from, pit_type to);
+
+       /// Convenience: prepare undo for the range between 'from' and cursor.
+       void recordUndo(UndoKind kind, pit_type from);
+
+       /// Convenience: prepare undo for the single paragraph or cell
+       /// containing the cursor
+       void recordUndo(UndoKind kind = ATOMIC_UNDO);
+
+       /// Convenience: prepare undo for the inset containing the cursor
+       void recordUndoInset(UndoKind kind = ATOMIC_UNDO);
+
+       /// Convenience: prepare undo for the whole buffer
+       void recordUndoFullDocument();
+
+       /// Convenience: prepare undo for the selected paragraphs
+       void recordUndoSelection();
+
 public:
        ///
        BufferView * bv_;
@@ -229,6 +260,13 @@ private:
        /// position before dispatch started
        DocIterator beforeDispatchCursor_;
 
+// FIXME: make them private.
+public:
+       /// the current font settings
+       Font current_font;
+       /// the current font
+       Font real_current_font;
+
 private:
 
        //