Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

UndoBuffer.h

00001 /*
00002 Copyright (C) 2000,2001 Stefan Duffner 
00003 
00004 This program is free software; you can redistribute it and/or
00005 modify it under the terms of the GNU General Public License
00006 as published by the Free Software Foundation; either version 2
00007 of the License, or any later version.
00008 
00009 This program is distributed in the hope that it will be useful,
00010 but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 GNU General Public License for more details.
00013 
00014 You should have received a copy of the GNU General Public License
00015 along with this program; if not, write to the Free Software
00016 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00017 */
00018 
00019 #ifndef UNDOBUFFER_H
00020 #define UNDOBUFFER_H
00021 
00022 #include <qobject.h>
00023 #include <qlist.h>
00024 #include "Undo.h"
00025 
00026 class MainWindow;
00027 class GState;
00028 
00029 
00034 class UndoBuffer 
00035 {
00036   public:
00037     UndoBuffer(QObject* );
00038     ~UndoBuffer();
00039 
00041     bool isEmpty() { return undolist.isEmpty(); };
00043     void clear() { tidyUp(); undolist.clear(); };
00044     void tidyUp();
00045 
00046     void addState(Machine* m, GState* );
00047     void addTransition(GTransition* );
00048     void changeState(GState*, GState*, GITransition*);
00049     void changeTransition(GTransition* );
00050     void changeInitialTransition(GITransition*);
00051     void changeTransitions(QList<GTransition>*);
00052     void moveMultiple(QList<GState>*, QList<GTransition>*, double, double);
00053     void deleteSelection(QList<GState>*, QList<GTransition>*);
00054     void deleteState(GState* );
00055     void deleteTransition(GTransition* );
00056     void setInitialState(GITransition* );
00057     void setEndStates(const QList<GState>& sl);
00058     void changeMachine(Machine* );
00059     void paste(QList<GState>*, QList<GTransition>*, GState* oldistate, 
00060       GState* newistate, GITransition* olditrans, GITransition* newitrans,
00061       int oldnumbits, int oldnumin, int oldnumout);
00062 
00063     void undo();
00064 
00065     void undoAddState(Undo*);
00066     void undoAddTransition(Undo*);
00067     void undoChangeState(Undo*);
00068     void undoChangeTransition(Undo*);
00069     void undoChangeInitialTransition(Undo*);
00070     void undoChangeTransitions(Undo*);
00071     void undoMoveMultiple(Undo*);
00072     void undoDeleteSelection(Undo*);
00073     void undoDeleteState(Undo*);
00074     void undoDeleteTransition(Undo*);
00075     void undoSetInitialState(Undo*);
00076     void undoSetEndStates(Undo*);
00077     void undoChangeMachine(Undo*);
00078     void undoPaste(Undo*);
00079 
00080   private:
00082     Project* project;
00084     QList<Undo> undolist;
00085 };
00086 
00087 #endif

Generated at Fri Apr 11 22:37:14 2003 for Qfsm by doxygen1.2.9.1 written by Dimitri van Heesch, © 1997-2001