using DesktopMagicPluginAPI.Drawing; using DesktopMagicPluginAPI.Inputs; using System; using System.Drawing; namespace DesktopMagicPluginAPI { /// /// The plugin class. /// public abstract class Plugin { private IPluginData application = null; /// /// Informations about the main application. /// public IPluginData Application { get => application; set { if (application is null) { application = value; } else { throw new InvalidOperationException($"You cannot set the value of the {nameof(Application)} property"); } } } /// /// Gets or sets the interval, expressed in milliseconds, at which to call the method. /// public virtual int UpdateInterval { get; set; } = 1000; /// /// Gets or sets the render quality of the bitmap image. /// public virtual RenderQuality RenderQuality { get; set; } = RenderQuality.High; /// /// Occurs once when the pugin gets activated. /// public virtual void Start() { } /// /// Occurs when the elapses. /// /// public abstract Bitmap Main(); /// /// Occurs when the window is clicked by the mouse. /// /// The x- and y-coordinates of the mouse pointer position relative to the plugin window. /// The button associated with the event. public virtual void OnMouseClick(Point position, MouseButton mouseButton) { } /// /// Occurs when the mouse pointer is moved over the control. /// /// The x- and y-coordinates of the mouse pointer position relative to the plugin window. public virtual void OnMouseMove(Point position) { } /// /// Occurs when the user rotates the mouse wheel while the mouse pointer is over this element. /// /// The x- and y-coordinates of the mouse pointer position relative to the plugin window. /// A value that indicates the amount that the mouse wheel has changed. public virtual void OnMouseWheel(Point position, int Delta) { } } }