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