1 module editEvents;
2 
3 public import eventChainSystem.undoable;
4 public import eventChainSystem.eventChain;
5 
6 import PixelPerfectEngine.concrete.elements;
7 
8 import std.variant;
9 
10 import app;
11 
12 public class ParameterChangeEvent : UndoableEvent{
13 	private bool undoneStatus;
14 	private string parameterName, targetObj;
15 	private Variant oldParam, newParam;
16 	public this(string parameterName, string targetObj, Variant param){
17 		
18 	}
19 	public void undo(){
20 		if(!undoneStatus){
21 		
22 		}
23 		undoneStatus = true;
24 	}
25 	public void redo(){
26 		if(undoneStatus){
27 		
28 		}
29 		undoneStatus = false;
30 	}
31 	public bool isUndone(){
32 		return undoneStatus;
33 	}
34 }
35 
36 public class ObjectPlacementEvent : UndoableEvent{
37 	private bool undoneStatus;
38 	private WindowElement element;
39 	private string ID;
40 	public this(string ID, WindowElement element){
41 		this.ID = ID;
42 		this.element = element;
43 		mainApp.ewh.dw.addElement(element, 0);
44 	}
45 	public void undo(){
46 		if(!undoneStatus){
47 			mainApp.ewh.dw.removeElement(element);
48 		}
49 		mainApp.windowElements[ID] = element;
50 		undoneStatus = true;
51 	}
52 	public void redo(){
53 		if(undoneStatus){
54 			mainApp.ewh.dw.addElement(element, 0);
55 		}
56 		mainApp.windowElements.remove(ID);
57 		undoneStatus = false;
58 	}
59 	public bool isUndone(){
60 		return undoneStatus;
61 	}
62 }
63