using System; using System.Drawing; using System.Windows.Forms; namespace TweetDuck.Controls { sealed class FlatProgressBar : ProgressBar { private readonly SolidBrush brush; public FlatProgressBar() { brush = new SolidBrush(Color.White); SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.OptimizedDoubleBuffer, true); } public void SetValueInstant(int value) { ControlExtensions.SetValueInstant(this, Math.Max(Minimum, Math.Min(Maximum, value))); } protected override void OnPaint(PaintEventArgs e) { if (brush.Color != ForeColor) { brush.Color = ForeColor; } Rectangle rect = e.ClipRectangle; rect.Width = (int) (rect.Width * ((double) Value / Maximum)); e.Graphics.FillRectangle(brush, rect); } protected override void Dispose(bool disposing) { base.Dispose(disposing); if (disposing) { brush.Dispose(); } } } }