77 // ============================================================================= |
77 // ============================================================================= |
78 class AbstractHistoryEntry { |
78 class AbstractHistoryEntry { |
79 PROPERTY (History*, parent, setParent) |
79 PROPERTY (History*, parent, setParent) |
80 |
80 |
81 public: |
81 public: |
82 virtual void undo () const {} |
82 virtual void undo() const {} |
83 virtual void redo () const {} |
83 virtual void redo() const {} |
84 virtual ~AbstractHistoryEntry () {} |
84 virtual ~AbstractHistoryEntry() {} |
85 virtual History::Type getType () const { return (History::Type) 0; } |
85 virtual History::Type getType() const { return (History::Type) 0; } |
86 }; |
86 }; |
87 |
87 |
88 // ============================================================================= |
88 // ============================================================================= |
89 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
89 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
90 // ============================================================================= |
90 // ============================================================================= |
101 |
101 |
102 public: |
102 public: |
103 IMPLEMENT_HISTORY_TYPE (Del) |
103 IMPLEMENT_HISTORY_TYPE (Del) |
104 |
104 |
105 DelHistory (ulong idx, LDObject* obj, Type type = Other) : |
105 DelHistory (ulong idx, LDObject* obj, Type type = Other) : |
106 m_index (idx), m_code (obj->raw ()), m_type (type) {} |
106 m_index (idx), |
|
107 m_code (obj->raw()), |
|
108 m_type (type) {} |
107 }; |
109 }; |
108 |
110 |
109 // ============================================================================= |
111 // ============================================================================= |
110 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
111 // ============================================================================= |
113 // ============================================================================= |
116 |
118 |
117 public: |
119 public: |
118 IMPLEMENT_HISTORY_TYPE (Edit) |
120 IMPLEMENT_HISTORY_TYPE (Edit) |
119 |
121 |
120 EditHistory (ulong idx, str oldCode, str newCode) : |
122 EditHistory (ulong idx, str oldCode, str newCode) : |
121 m_index (idx), m_oldCode (oldCode), m_newCode (newCode) {} |
123 m_index (idx), |
|
124 m_oldCode (oldCode), |
|
125 m_newCode (newCode) {} |
122 }; |
126 }; |
123 |
127 |
124 // ============================================================================= |
128 // ============================================================================= |
125 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
129 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
126 // ============================================================================= |
130 // ============================================================================= |
137 |
141 |
138 public: |
142 public: |
139 IMPLEMENT_HISTORY_TYPE (Add) |
143 IMPLEMENT_HISTORY_TYPE (Add) |
140 |
144 |
141 AddHistory (ulong idx, LDObject* obj, Type type = Other) : |
145 AddHistory (ulong idx, LDObject* obj, Type type = Other) : |
142 m_index (idx), m_code (obj->raw ()), m_type (type) {} |
146 m_index (idx), |
|
147 m_code (obj->raw()), |
|
148 m_type (type) {} |
143 }; |
149 }; |
144 |
150 |
145 // ============================================================================= |
151 // ============================================================================= |
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
152 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
147 // ============================================================================= |
153 // ============================================================================= |
151 |
157 |
152 List<ulong> indices; |
158 List<ulong> indices; |
153 vertex dest; |
159 vertex dest; |
154 |
160 |
155 MoveHistory (List<ulong> indices, vertex dest) : |
161 MoveHistory (List<ulong> indices, vertex dest) : |
156 indices (indices), dest (dest) {} |
162 indices (indices), |
|
163 dest (dest) {} |
157 }; |
164 }; |
158 |
165 |
159 class SwapHistory : public AbstractHistoryEntry |
166 class SwapHistory : public AbstractHistoryEntry { |
160 { |
|
161 public: |
167 public: |
162 IMPLEMENT_HISTORY_TYPE( Swap ) |
168 IMPLEMENT_HISTORY_TYPE (Swap) |
163 ulong a, b; |
169 ulong a, b; |
164 |
170 |
165 SwapHistory( ulong a, ulong b ) : a( a ), b( b ) {} |
171 SwapHistory (ulong a, ulong b) : |
|
172 a (a), |
|
173 b (b) {} |
166 }; |
174 }; |
167 |
175 |
168 #endif // HISTORY_H |
176 #endif // HISTORY_H |