/* * Greenshot - a free and open source screenshot tool * Copyright (C) 2007-2016 Thomas Braun, Jens Klingen, Robin Krom * * For more information see: http://getgreenshot.org/ * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/greenshot/ * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; namespace Greenshot.Plugin.Drawing.Adorners { public interface IAdorner { /// /// Returns if this adorner is active /// bool IsActive { get; } /// /// The current edit status, this is needed to locate the adorner to send events to /// EditStatus EditStatus { get; } /// /// The owner of this adorner /// IDrawableContainer Owner { get; } /// /// Is the current point "over" the Adorner? /// If this is the case, the /// /// Point to test /// true if so bool HitTest(Point point); /// /// Handle the MouseDown event /// /// /// MouseEventArgs void MouseDown(object sender, MouseEventArgs mouseEventArgs); /// /// Handle the MouseUp event /// /// /// MouseEventArgs void MouseUp(object sender, MouseEventArgs mouseEventArgs); /// /// Handle the MouseMove event /// /// /// MouseEventArgs void MouseMove(object sender, MouseEventArgs mouseEventArgs); /// /// Gets the cursor that should be displayed for this behavior. /// Cursor Cursor { get; } /// /// Draw the adorner /// /// PaintEventArgs void Paint(PaintEventArgs paintEventArgs); /// /// Called if the owner is transformed /// /// Matrix void Transform(Matrix matrix); } }