CraftSynth.ImageEditor – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 using System;
2  
3 namespace CraftSynth.ImageEditor
4 {
5 /// <summary>
6 /// Add new object command
7 /// </summary>
8 internal class CommandAdd : Command, IDisposable
9 {
10 private DrawObject drawObject;
11  
12 // Create this command with DrawObject instance added to the list
13 public CommandAdd(DrawObject drawObject) : base()
14 {
15 // Keep copy of added object
16 this.drawObject = drawObject.Clone();
17 }
18  
19 /// <summary>
20 /// Undo last Add command
21 /// </summary>
22 /// <param name="list">Layers collection</param>
23 public override void Undo(Layers list)
24 {
25 list[list.ActiveLayerIndex].Graphics.DeleteLastAddedObject();
26 }
27  
28 /// <summary>
29 /// Redo last Add command
30 /// </summary>
31 /// <param name="list">Layers collection</param>
32 public override void Redo(Layers list)
33 {
34 list[list.ActiveLayerIndex].Graphics.UnselectAll();
35 list[list.ActiveLayerIndex].Graphics.Add(drawObject);
36  
37 if (drawObject is DrawImage && (drawObject as DrawImage).IsInitialImage)
38 {
39 drawObject.Selected = true;
40 list[list.ActiveLayerIndex].Graphics.MoveSelectionToBack();
41 list[list.ActiveLayerIndex].Graphics.UnselectAll();
42 }
43 }
44  
45 #region Destruction
46 // Flag: Has Dispose already been called?
47 bool _disposed = false;
48  
49 // Protected implementation of Dispose pattern.
50 public override void Dispose(bool disposing)
51 {
52 if (!this._disposed)
53 {
54  
55 if (disposing)
56 {
57 // Free any managed objects here.
58 //
59 if (this.drawObject != null)
60 {
61 this.drawObject.Dispose();
62 }
63 }
64  
65 // Free any unmanaged objects here.
66 //
67  
68 this._disposed = true;
69 }
70 }
71  
72 ~CommandAdd()
73 {
74 this.Dispose(false);
75 }
76 #endregion
77 }
78 }