OSDN Git Service

[denncoCreator] reworked the code editor. Its now opened on a separate window.
[dennco/denncoCreator.git] / Source / command / dceditcommands.h
1 //  Copyright (c) 2012 Dennco Project
2 //
3 // This program is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
16 //
17 //  Created by tkawata on Sep-30, 2012.
18 //
19 #ifndef DCEDITCOMMANDS_H
20 #define DCEDITCOMMANDS_H
21
22 #include "dccommand.h"
23
24 class DCCell;
25 class DCCellCode;
26 class DCContainer;
27 class DCAxon;
28 class DCReceptor;
29 class DCAxonTerminal;
30 class DCVCPage;
31
32 class DCStartAddAxonTerminalCommandFromAxon : public DCCommand
33 {
34     DCCell  *d_ownerCell;
35
36 public:
37     DCStartAddAxonTerminalCommandFromAxon(const void *requester, DCCreator *creator, DCCell *ownerCell);
38     virtual ~DCStartAddAxonTerminalCommandFromAxon() {}
39     void undo();
40     void redo();
41 };
42
43
44 class DCStartAddAxonTerminalCommandFromReceptor : public DCCommand
45 {
46     DCCell  *d_ownerCell;
47     QString d_receptorName;
48
49 public:
50     DCStartAddAxonTerminalCommandFromReceptor(const void *requester, DCCreator *creator, DCCell *ownerCell, const QString &receptorName);
51     virtual ~DCStartAddAxonTerminalCommandFromReceptor() {}
52     void undo();
53     void redo();
54 };
55
56
57 //------------------------------------------
58
59 class DCCommitAddAxonTerminalCommand : public DCCommand
60 {
61     DCCell          *d_axonCell;
62     DCCell          *d_receptorCell;
63     DCReceptor      *d_receptor;
64     QString         d_receptorName;
65     bool            d_isAdded;
66
67 public:
68     DCCommitAddAxonTerminalCommand(const void *requester, DCCreator *creator, DCAxon *axon, DCCell *receptorCell, const QString &receptorName);
69     DCCommitAddAxonTerminalCommand(const void *requester, DCCreator *creator, DCCell *axonCell, DCReceptor *receptor);
70     virtual ~DCCommitAddAxonTerminalCommand() {}
71     void undo();
72     void redo();
73 };
74
75 //------------------------------------------
76
77 class DCRemoveAxonTerminalCommand : public DCCommand
78 {
79     DCCell          *d_cell;
80     DCAxonTerminal  *d_axonTerminal;
81     QString         d_receptorName;
82     bool            d_isDeleted;
83 public:
84     DCRemoveAxonTerminalCommand(const void *requester, DCCreator *creator, DCCell *axonCell, DCAxonTerminal *terminal);
85     DCRemoveAxonTerminalCommand(const void *requester, DCCreator *creator, DCCell *receptorCell, const QString& receptorName);
86     virtual ~DCRemoveAxonTerminalCommand() {}
87     void undo();
88     void redo();
89 };
90
91 //------------------------------------------
92
93 class DCAssignCellCodeClassToCellCommand : public DCCommand
94 {
95     DCCell      *d_cell;
96     DCCellCode  *d_cellCode;
97     DCCellCode  *d_prevClass;
98 public:
99     DCAssignCellCodeClassToCellCommand(const void *requester, DCCreator *creator, DCCell *cell, DCCellCode *cellCode);
100     virtual ~DCAssignCellCodeClassToCellCommand() {}
101     void undo();
102     void redo();
103 };
104
105 //------------------------------------------
106
107 class DCUnassignCellCodeClassFromCellCommand : public DCCommand
108 {
109     DCCell      *d_cell;
110     DCCellCode  *d_prevClass;
111 public:
112     DCUnassignCellCodeClassFromCellCommand(const void *requester, DCCreator *creator, DCCell *cell);
113     virtual ~DCUnassignCellCodeClassFromCellCommand() {}
114     void undo();
115     void redo();
116 };
117
118 //------------------------------------------
119
120 class DCAddCellCodeClassCommand : public DCCommand
121 {
122     DCContainer *d_container;
123     QString     d_name;
124     QString     d_type;
125
126 public:
127     DCAddCellCodeClassCommand(const void *requester, DCCreator *creator, DCContainer *container, const QString& name, const QString &type);
128     virtual ~DCAddCellCodeClassCommand() {}
129     void undo();
130     void redo();
131 };
132
133 //------------------------------------------
134
135 class DCMoveCellCodeClassCommand : public DCCommand
136 {
137     QString     d_name;
138     QString     d_type;
139
140 public:
141     DCMoveCellCodeClassCommand(const void *requester, DCCreator *creator, const QString& name, const QString &type);
142     virtual ~DCMoveCellCodeClassCommand();
143     void undo();
144     void redo();
145 };
146
147 //------------------------------------------
148
149 class DCChangeCellCodeClassTypeCommand : public DCCommand
150 {
151     DCCellCode* d_cellCode;
152     QString     d_type;
153
154 public:
155     DCChangeCellCodeClassTypeCommand(const void *requester, DCCreator *creator, DCCellCode* cellCode, const QString& newType);
156     virtual ~DCChangeCellCodeClassTypeCommand() {}
157     void undo();
158     void redo();
159 };
160
161 //------------------------------------------
162
163 class DCRemoveCellCodeClassCommand : public DCCommand
164 {
165     DCContainer         *d_container;
166     QList<DCCellCode*>  d_cellCodes;
167     QString             d_type;
168
169 public:
170     DCRemoveCellCodeClassCommand(const void *requester, DCCreator *creator, DCContainer *container, DCCellCode* cellCode);
171     DCRemoveCellCodeClassCommand(const void *requester, DCCreator *creator, DCContainer *container, const QList<DCCellCode*> &cellcodes);
172     virtual ~DCRemoveCellCodeClassCommand();
173     void undo();
174     void redo();
175 };
176
177 //------------------------------------------
178
179 class DCAddCellCommand : public DCCommand
180 {
181     DCContainer *d_container;
182     QString     d_path;
183     QString     d_name;
184     QString     d_type;
185     float       d_pageX;
186     float       d_pageY;
187
188 public:
189     DCAddCellCommand(const void *requester, DCCreator *creator, DCContainer *container, const QString& path, const QString& name, const QString &type, float pageX, float pageY);
190     virtual ~DCAddCellCommand() {}
191     void undo();
192     void redo();
193 };
194
195 //------------------------------------------
196
197 class DCChangeCellTypeCommand : public DCCommand
198 {
199     DCCell      *d_cell;
200     QString     d_type;
201
202 public:
203     DCChangeCellTypeCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString& newType);
204     virtual ~DCChangeCellTypeCommand() {}
205     void undo();
206     void redo();
207 };
208
209 //------------------------------------------
210
211 class DCRenameCellCommand : public DCCommand
212 {
213     DCCell      *d_cell;
214     QString     d_location;
215     QString     d_name;
216
217 public:
218     DCRenameCellCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString& newName);
219     DCRenameCellCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString &newLocation, const QString& newName);
220     virtual ~DCRenameCellCommand();
221     void undo();
222     void redo();
223 };
224
225 //------------------------------------------
226
227 class DCMoveCellCommand : public DCCommand
228 {
229     DCCell      *d_cell;
230     DCVCPage    *d_page;
231
232 public:
233     DCMoveCellCommand(const void *requester, DCCreator *creator, DCCell *cell, DCVCPage *newPage);
234     virtual ~DCMoveCellCommand();
235     void undo();
236     void redo();
237 };
238
239 //------------------------------------------
240
241 class DCRemoveCellCommand : public DCCommand
242 {
243     DCContainer     *d_container;
244     QList<DCCell*>  d_cells;
245
246 public:
247     DCRemoveCellCommand(const void *requester, DCCreator *creator, DCContainer *container, DCCell *cell);
248     DCRemoveCellCommand(const void *requester, DCCreator *creator, DCContainer *container, const QList<DCCell*> &cells);
249     virtual ~DCRemoveCellCommand();
250     void undo();
251     void redo();
252 };
253
254 //------------------------------------------
255
256 class DCAddPageCommand : public DCCommand
257 {
258     QString     d_path;
259     DCVCPage    *d_page;
260 public:
261     DCAddPageCommand(const void *requester, DCCreator *creator, const QString& containerBasedPathName);
262     virtual ~DCAddPageCommand() {}
263     void undo();
264     void redo();
265 };
266
267 //------------------------------------------
268
269 class DCMovePageCommand : public DCCommand
270 {
271     QString     d_oldPath;
272     QString     d_newPath;
273
274 public:
275     DCMovePageCommand(const void *requester, DCCreator *creator, const QString& oldContainerBasedPathName, const QString& newContainerBasedPathName);
276     virtual ~DCMovePageCommand();
277     void undo();
278     void redo();
279 };
280
281 //------------------------------------------
282
283 class DCRemovePageCommand : public DCCommand
284 {
285     DCVCPage    *d_page;
286     QUndoStack  d_undoStack;
287
288 public:
289     DCRemovePageCommand(const void *requester, DCCreator *creator, DCVCPage *page);
290     virtual ~DCRemovePageCommand();
291     void undo();
292     void redo();
293 };
294
295 //------------------------------------------
296
297 class DCAddDirectoryCommand : public DCCommand
298 {
299     QString d_path;
300 public:
301     DCAddDirectoryCommand(const void *requester, DCCreator *creator, const QString& sysFilePath);
302     virtual ~DCAddDirectoryCommand() {}
303     void undo();
304     void redo();
305 };
306
307 //------------------------------------------
308
309 class DCRenameDirectoryCommand : public DCCommand
310 {
311     QString d_oldPath;
312     QString d_newPath;
313
314 public:
315     DCRenameDirectoryCommand(const void *requester, DCCreator *creator, const QString& sysOldDirPath, const QString& sysNewDirPath);
316     virtual ~DCRenameDirectoryCommand() {}
317     void undo();
318     void redo();
319
320     bool moveComponentsToDirectory(const QString& orgDirectory, const QString& destDirectory);
321 };
322
323 //------------------------------------------
324
325 class DCRemoveDirectoryCommand : public DCCommand
326 {
327     QString d_path;
328 public:
329     DCRemoveDirectoryCommand(const void *requester, DCCreator *creator, const QString& sysFilePath);
330     virtual ~DCRemoveDirectoryCommand() {}
331     void undo();
332     void redo();
333 };
334
335 //------------------------------------------
336
337 class DCRenameReceptorNameCommand : public DCCommand
338 {
339     DCCell* d_cell;
340     QString d_oldName;
341     QString d_newName;
342
343 public:
344     DCRenameReceptorNameCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString& oldName, const QString& newName);
345     virtual ~DCRenameReceptorNameCommand() {}
346     void undo();
347     void redo();
348 };
349
350 #endif // DCEDITCOMMANDS_H