3 // Copyright 1997-2007 by Christopher J. Madsen
4 // (C) 2019 James Hammons
6 // GUEmap is licensed under either version 2 of the GPL, or (at your option)
7 // any later version. See LICENSE file for details.
9 // undo.h: interface of UndoRec and its derived classes
26 UndoRec(bool modified);
29 // Functions unique to UndoRec
30 UndoRec * undo(MapDoc & doc);
32 // Pure virtual functions (MUST be implemented by derived classes)
33 virtual const char * getName() const = 0;
34 virtual UndoRec * undoChange(MapDoc & doc) = 0;
38 class UndoAdd: public UndoRec
46 UndoAdd(bool modified, int edgeCount, RoomNumVec & theRoomNums, PageNumVec & thePageNums);
47 UndoAdd(bool modified, RoomNum roomNum, int edgeCount);
48 UndoAdd(bool modified, short pageNum);
49 UndoAdd(bool modified);
51 // Overloaded functions
52 const char * getName() const;
53 UndoRec * undoChange(MapDoc & doc);
57 class UndoChangeEdge: public UndoRec
63 UndoChangeEdge(bool modified, const MapEdge & theEdge);
65 // Overloaded functions
66 const char * getName() const;
67 UndoRec * undoChange(MapDoc & doc);
71 class UndoDelete: public UndoRec
81 UndoDelete(const MapDoc & doc, int numSelected, const ByteVec & selectedRooms, int numSelectedPages, const ByteVec & selectedPages);
82 UndoDelete(const MapDoc & doc, int numEdges, const RoomNumVec & theRoomNums, const PageNumVec & thePageNums);
83 UndoDelete(bool modified, const MapEdge & edge);
84 UndoDelete(bool modified, EdgeVec & theEdges);
85 void addRoom(VecSize pos, RoomNum n, MapRoom * r);
86 void addRooms(VecSize n);
88 // Overloaded functions
89 const char * getName() const;
90 UndoRec * undoChange(MapDoc & doc);
94 class UndoChanges: public UndoRec
101 UndoChanges(bool modified, RoomNum roomNum, int edgeCount, const MapEdge & edge);
102 UndoChanges(bool modified, int roomNum, int edgeCount, EdgeVec & edges);
103 UndoChanges(bool modified, RoomNum roomNum, MapRoom * room, EdgeVec & edges);
105 // Overloaded functions
106 const char * getName() const;
107 UndoRec * undoChange(MapDoc & doc);
111 class UndoMove: public UndoRec
119 UndoMove(bool modified, const QSize & moved, int numSelected, const ByteVec & selectedRooms, int numSelectedPages, const ByteVec & selectedPages);
120 UndoMove(bool modified, const QSize & moved, RoomNumVec & rooms, PageNumVec & pages);
122 // Overloaded functions
123 const char * getName() const;
124 UndoRec * undoChange(MapDoc & doc);
128 class UndoPaginate: public UndoRec
134 UndoPaginate(MapDoc & doc);
135 const PageVec & getPages() const;
137 // Overloaded functions
138 const char * getName() const;
139 UndoRec * undoChange(MapDoc & doc);
143 class UndoRoomInfo : public UndoRec
150 UndoRoomInfo(const MapDoc & doc, RoomNum roomNum);
152 // Overloaded functions
153 const char * getName() const;
154 UndoRec * undoChange(MapDoc & doc);