diff options
Diffstat (limited to 'attic/muse2-oom/muse2/muse/undo.h')
-rw-r--r-- | attic/muse2-oom/muse2/muse/undo.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/attic/muse2-oom/muse2/muse/undo.h b/attic/muse2-oom/muse2/muse/undo.h new file mode 100644 index 00000000..896b8a94 --- /dev/null +++ b/attic/muse2-oom/muse2/muse/undo.h @@ -0,0 +1,110 @@ +//========================================================= +// MusE +// Linux Music Editor +// $Id: undo.h,v 1.6.2.5 2009/05/24 21:43:44 terminator356 Exp $ +// +// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de) +//========================================================= + +#ifndef __UNDO_H__ +#define __UNDO_H__ + +#include <list> + +#include "event.h" +#include "marker/marker.h" + +class QString; + +class Track; +class TEvent; +class SigEvent; +class Part; + +extern std::list<QString> temporaryWavFiles; //!< Used for storing all tmp-files, for cleanup on shutdown +//--------------------------------------------------------- +// UndoOp +//--------------------------------------------------------- + +struct UndoOp { + enum UndoType { + AddTrack, DeleteTrack, ModifyTrack, + AddPart, DeletePart, ModifyPart, + AddEvent, DeleteEvent, ModifyEvent, + AddTempo, DeleteTempo, + AddSig, DeleteSig, + SwapTrack, + ModifyClip, + ModifyMarker, + AddTrackView, DeleteTrackView, ModifyTrackView + }; + UndoType type; + + union { + struct { + int a; + int b; + int c; + }; + struct { + Track* oTrack; + Track* nTrack; + int trackno; + }; + struct { + Part* oPart; + Part* nPart; + }; + struct { + Part* part; + }; + struct { + SigEvent* nSignature; + SigEvent* oSignature; + }; + struct { + int channel; + int ctrl; + int oVal; + int nVal; + }; + struct { + int startframe; //!< Start frame of changed data + int endframe; //!< End frame of changed data + const char* filename; //!< The file that is changed + const char* tmpwavfile; //!< The file with the changed data + }; + struct { + Marker* realMarker; + Marker* copyMarker; + }; + struct { + int d; + int e; + int f; + }; + }; + Event oEvent; + Event nEvent; + bool doCtrls; + bool doClones; + const char* typeName(); + void dump(); + }; + +class Undo : public std::list<UndoOp> { + void undoOp(UndoOp::UndoType, int data); + }; + +typedef Undo::iterator iUndoOp; +typedef Undo::reverse_iterator riUndoOp; + +class UndoList : public std::list<Undo> { + public: + void clearDelete(); + }; + +typedef UndoList::iterator iUndo; + + +#endif // __UNDO_H__ |