]> git.lyx.org Git - lyx.git/blobdiff - src/Cursor.cpp
* gcc does not like missing characters in keywords
[lyx.git] / src / Cursor.cpp
index 4e4770a4ca9aa32deeb814aef61a0dfcce37c5a8..54a3b8bb7e43974900ba6d97e4534f0ee276de57 100644 (file)
@@ -43,8 +43,6 @@
 #include "mathed/InsetMathScript.h"
 #include "mathed/MacroTable.h"
 
-#include "support/limited_stack.h"
-
 #include <boost/assert.hpp>
 #include <boost/bind.hpp>
 #include <boost/current_function.hpp>
@@ -268,7 +266,8 @@ namespace {
 // bv functions are not yet available!
 Cursor::Cursor(BufferView & bv)
        : DocIterator(), bv_(&bv), anchor_(), x_target_(-1), textTargetOffset_(0),
-         selection_(false), mark_(false), logicalpos_(false), current_font(Font::ALL_INHERIT)
+         selection_(false), mark_(false), logicalpos_(false),
+         current_font(inherit_font)
 {}
 
 
@@ -1546,10 +1545,84 @@ void Cursor::setCurrentFont()
            && !boundary()) {
                Language const * lang = par.getParLanguage(bufparams);
                current_font.setLanguage(lang);
-               current_font.setNumber(Font::OFF);
+               current_font.fontInfo().setNumber(FONT_OFF);
                real_current_font.setLanguage(lang);
-               real_current_font.setNumber(Font::OFF);
+               real_current_font.fontInfo().setNumber(FONT_OFF);
        }
 }
 
+
+bool Cursor::textUndo()
+{
+       DocIterator dit = *this;
+       // Undo::textUndo() will modify dit.
+       if (!bv_->buffer().undo().textUndo(dit))
+               return false;
+       // Set cursor
+       setCursor(dit);
+       selection() = false;
+       resetAnchor();
+       fixIfBroken();
+       return true;
+}
+
+
+bool Cursor::textRedo()
+{
+       DocIterator dit = *this;
+       // Undo::textRedo() will modify dit.
+       if (!bv_->buffer().undo().textRedo(dit))
+               return false;
+       // Set cursor
+       setCursor(dit);
+       selection() = false;
+       resetAnchor();
+       fixIfBroken();
+       return true;
+}
+
+
+void Cursor::finishUndo()
+{
+       bv_->buffer().undo().finishUndo();
+}
+
+
+void Cursor::recordUndo(UndoKind kind, pit_type from, pit_type to)
+{
+       bv_->buffer().undo().recordUndo(*this, kind, from, to);
+}
+
+
+void Cursor::recordUndo(UndoKind kind, pit_type from)
+{
+       bv_->buffer().undo().recordUndo(*this, kind, from);
+}
+
+
+void Cursor::recordUndo(UndoKind kind)
+{
+       bv_->buffer().undo().recordUndo(*this, kind);
+}
+
+
+void Cursor::recordUndoInset(UndoKind kind)
+{
+       bv_->buffer().undo().recordUndoInset(*this, kind);
+}
+
+
+void Cursor::recordUndoFullDocument()
+{
+       bv_->buffer().undo().recordUndoFullDocument(*this);
+}
+
+
+void Cursor::recordUndoSelection()
+{
+       bv_->buffer().undo().recordUndo(*this, ATOMIC_UNDO,
+               selBegin().pit(), selEnd().pit());
+}
+
+
 } // namespace lyx