CraftSynth.ImageEditor – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 using System.Windows.Forms;
2  
3 namespace CraftSynth.ImageEditor
4 {
5 /// <summary>
6 /// Base class for all tools which create new graphic object
7 /// </summary>
8 internal abstract class ToolObject : Tool
9 {
10 private Cursor cursor;
11  
12 /// <summary>
13 /// Tool cursor.
14 /// </summary>
15 protected Cursor Cursor
16 {
17 get { return cursor; }
18 set { cursor = value; }
19 }
20  
21  
22 /// <summary>
23 /// Left mouse is released.
24 /// New object is created and resized.
25 /// </summary>
26 /// <param name="drawArea"></param>
27 /// <param name="e"></param>
28 public override void OnMouseUp(DrawArea drawArea, MouseEventArgs e)
29 {
30 int al = drawArea.TheLayers.ActiveLayerIndex;
31 if (drawArea.TheLayers[al].Graphics.Count > 0)
32 drawArea.TheLayers[al].Graphics[0].Normalize();
33 //drawArea.ActiveTool = DrawArea.DrawToolType.Pointer;
34  
35 drawArea.Capture = false;
36 drawArea.Refresh();
37 }
38  
39 /// <summary>
40 /// Add new object to draw area.
41 /// Function is called when user left-clicks draw area,
42 /// and one of ToolObject-derived tools is active.
43 /// </summary>
44 /// <param name="drawArea"></param>
45 /// <param name="o"></param>
46 protected void AddNewObject(DrawArea drawArea, DrawObject o)
47 {
48 int al = drawArea.TheLayers.ActiveLayerIndex;
49 drawArea.TheLayers[al].Graphics.UnselectAll();
50  
51 o.Selected = true;
52 o.Dirty = true;
53 int objectID = 0;
54 // Set the object id now
55 for (int i = 0; i < drawArea.TheLayers.Count; i++)
56 {
57 objectID = +drawArea.TheLayers[i].Graphics.Count;
58 }
59 objectID++;
60 o.ID = objectID;
61 drawArea.TheLayers[al].Graphics.Add(o);
62  
63 drawArea.Capture = true;
64 drawArea.Refresh();
65 }
66  
67 #region Destruction
68 private bool _disposed = false;
69  
70 protected override void Dispose(bool disposing)
71 {
72 if (!this._disposed)
73 {
74 if (disposing)
75 {
76 // Free any managed objects here.
77 if (this.cursor != null)
78 {
79 this.cursor.Dispose();
80 }
81 }
82  
83 // Free any unmanaged objects here.
84  
85 this._disposed = true;
86 }
87 base.Dispose(disposing);
88 }
89  
90 ~ToolObject()
91 {
92 this.Dispose(false);
93 }
94 #endregion
95 }
96 }