using System; using System.Windows.Forms; using System.Drawing; namespace DrawTools { /// /// Base class for all tools which create new graphic object /// abstract class ToolObject : DrawTools.Tool { private Cursor cursor; /// /// Tool cursor. /// protected Cursor Cursor { get { return cursor; } set { cursor = value; } } /// /// Left mouse is released. /// New object is created and resized. /// /// /// public override void OnMouseUp(DrawArea drawArea, MouseEventArgs e) { drawArea.GraphicsList[0].Normalize(); drawArea.AddCommandToHistory(new CommandAdd(drawArea.GraphicsList[0])); drawArea.ActiveTool = DrawArea.DrawToolType.Pointer; drawArea.Capture = false; drawArea.Refresh(); } /// /// Add new object to draw area. /// Function is called when user left-clicks draw area, /// and one of ToolObject-derived tools is active. /// /// /// protected void AddNewObject(DrawArea drawArea, DrawObject o) { drawArea.GraphicsList.UnselectAll(); o.Selected = true; drawArea.GraphicsList.Add(o); drawArea.Capture = true; drawArea.Refresh(); drawArea.SetDirty(); } } }