CraftSynth.ImageEditor – Blame information for rev 1
?pathlinks?
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 | } |