]> git.lyx.org Git - lyx.git/blobdiff - src/undo.C
Herbert's fix to bug #222.
[lyx.git] / src / undo.C
index 1617def3b89a870500384f88366583a5e4408846..f2c02285089528ef1d91a2cbe33de79c79a0ff01 100644 (file)
@@ -4,68 +4,43 @@
  *           LyX, The Document Processor
  *      
  *           Copyright 1995 Matthias Ettrich
- *           Copyright 1995-1999 The LyX Team.
+ *           Copyright 1995-2001 The LyX Team.
  *
  * ====================================================== */
 
 #include <config.h>
 
-#include "undo.h"
-
 #ifdef __GNUG__
 #pragma implementation
 #endif
 
-UndoStack::UndoStack()
-       : limit(100) {}
-
-
-Undo * UndoStack::Pop()
-{
-       if (stakk.empty()) return 0;
-       Undo * result = stakk.front();
-       stakk.pop_front();
-       return result;
-}
-
-
-Undo * UndoStack::Top()
-{
-       if (stakk.empty()) return 0;
-       return stakk.front();
-}
+#include "undo.h"
+#include "paragraph.h"
 
 
-UndoStack::~UndoStack()
+Undo::Undo(undo_kind kind_arg, int id_inset_arg,
+          int number_before_arg, int number_behind_arg,
+          int cursor_par_arg, int cursor_pos_arg,
+          Paragraph * par_arg)
 {
-       Clear();
+       kind = kind_arg;
+       number_of_inset_id = id_inset_arg;
+       number_of_before_par = number_before_arg;
+       number_of_behind_par = number_behind_arg;
+       number_of_cursor_par = cursor_par_arg;
+       cursor_pos = cursor_pos_arg;
+       par = par_arg;
 }
 
 
-void UndoStack::Clear()
+Undo::~Undo()
 {
-       while (!stakk.empty()) {
-               Undo * tmp = stakk.front();
-               stakk.pop_front();
-               delete tmp;
+       Paragraph * tmppar;
+       while (par) {
+               tmppar = par;
+               par = par->next();
+               delete tmppar;
        }
 }
 
 
-void UndoStack::SetStackLimit(Stakk::size_type l)
-{
-       limit = l;
-}
-
-
-void UndoStack::Push(Undo * undo_arg)
-{
-       if (!undo_arg) return;
-       
-       stakk.push_front(undo_arg);
-       if (stakk.size() > limit) {
-               Undo * tmp = stakk.back();
-               stakk.pop_back();
-               delete tmp;
-       }
-}