using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using System.Collections.Generic; namespace ProgressODoom { /// [ToolboxBitmapAttribute(typeof(ProgressODoom.RarBorderPainter), "Icons.RarBorderPainter.ico")] public class RarBorderPainter : Component, IProgressBorderPainter, IDisposable { private Pen border; private EventHandler onPropertiesChanged; /// public event EventHandler PropertiesChanged { add { if (onPropertiesChanged != null) { foreach (Delegate d in onPropertiesChanged.GetInvocationList()) { if (object.ReferenceEquals(d, value)) { return; } } } onPropertiesChanged = (EventHandler)Delegate.Combine(onPropertiesChanged, value); } remove { onPropertiesChanged = (EventHandler)Delegate.Remove(onPropertiesChanged, value); } } private void FireChange() { if (onPropertiesChanged != null) { onPropertiesChanged(this, EventArgs.Empty); } } /// public RarBorderPainter() { border = new Pen(new SolidBrush(Color.FromArgb(064, 064, 070)), 1f); } /// [Browsable(false)] public int BorderWidth { get { return 1; } } /// /// /// public void PaintBorder(Rectangle box, Graphics g) { g.DrawRectangle(new Pen(new SolidBrush(SystemColors.Control), 1f), 0, 0, box.Width, box.Height); g.DrawLine(border, 2, box.Height, box.Width, box.Height); g.DrawLine(border, box.Width, 3, box.Width, box.Height); } /// public void Resize(Rectangle box) { } /// protected override void Dispose(bool disposing) { base.Dispose(disposing); border.Dispose(); } } }