using System; using System.Windows.Forms; namespace CraftSynth.ImageEditor { /// /// Base class for all drawing tools /// internal abstract class Tool:IDisposable { /// /// Left nous button is pressed /// /// /// public virtual void OnMouseDown(DrawArea drawArea, MouseEventArgs e) { } /// /// Mouse is moved, left mouse button is pressed or none button is pressed /// /// /// public virtual void OnMouseMove(DrawArea drawArea, MouseEventArgs e) { } /// /// Left mouse button is released /// /// /// public virtual void OnMouseUp(DrawArea drawArea, MouseEventArgs e) { } #region Destruction public void Dispose() { this.Dispose(true); GC.SuppressFinalize(this); } private bool _disposed = false; protected virtual void Dispose(bool disposing) { if (!this._disposed) { if (disposing) { // Free any managed objects here. } // Free any unmanaged objects here. this._disposed = true; } } ~Tool() { this.Dispose(false); } #endregion } }