475 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			475 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Text;
 | |
| using System.ComponentModel;
 | |
| using System.Drawing;
 | |
| using System.Windows.Forms;
 | |
| 
 | |
| namespace DevComponents.DotNetBar.Controls
 | |
| {
 | |
|     [ToolboxBitmap(typeof(CircularProgress), "Controls.CircularProgress.ico"), ToolboxItem(true), DefaultEvent("ValueChanged")]
 | |
|     public class CircularProgress : BaseItemControl
 | |
|     {
 | |
|         #region Constructor
 | |
|         private CircularProgressItem _Item = null;
 | |
|         /// <summary>
 | |
|         /// Initializes a new instance of the CircularProgress class.
 | |
|         /// </summary>
 | |
|         public CircularProgress()
 | |
|         {
 | |
|             _Item = new CircularProgressItem();
 | |
|             _Item.ValueChanged += new EventHandler(ItemValueChanged);
 | |
|             _Item.TextVisible = false;
 | |
|             this.HostItem = _Item;
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region Implementation
 | |
|         protected override void Dispose(bool disposing)
 | |
|         {
 | |
|             _Item.Dispose();
 | |
|             base.Dispose(disposing);
 | |
|         }
 | |
|         protected override void RecalcSize()
 | |
|         {
 | |
|             _Item.Diameter = Math.Min(this.Width, this.Height);
 | |
|             base.RecalcSize();
 | |
|         }
 | |
|         private void ItemValueChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             OnValueChanged(e);
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Occurs when Value property has changed.
 | |
|         /// </summary>
 | |
|         public event EventHandler ValueChanged;
 | |
|         /// <summary>
 | |
|         /// Raises ValueChanged event.
 | |
|         /// </summary>
 | |
|         /// <param name="e">Provides event arguments.</param>
 | |
|         protected virtual void OnValueChanged(EventArgs e)
 | |
|         {
 | |
|             EventHandler handler = ValueChanged;
 | |
|             if (handler != null)
 | |
|                 handler(this, e);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the circular progress bar type.
 | |
|         /// </summary>
 | |
|         [DefaultValue(eCircularProgressType.Line), Category("Appearance"), Description("Indicates circular progress bar type.")]
 | |
|         public eCircularProgressType ProgressBarType
 | |
|         {
 | |
|             get { return _Item.ProgressBarType; }
 | |
|             set
 | |
|             {
 | |
|                 _Item.ProgressBarType = value;
 | |
|             }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets or sets the maximum value of the progress bar.
 | |
|         /// </summary>
 | |
|         [Description("Indicates maximum value of the progress bar."), Category("Behavior"), DefaultValue(100)]
 | |
|         public int Maximum
 | |
|         {
 | |
|             get { return _Item.Maximum; }
 | |
|             set
 | |
|             {
 | |
|                 _Item.Maximum = value;
 | |
|             }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets or sets the minimum value of the progress bar.
 | |
|         /// </summary>
 | |
|         [Description("Indicates minimum value of the progress bar."), Category("Behavior"), DefaultValue(0)]
 | |
|         public int Minimum
 | |
|         {
 | |
|             get { return _Item.Minimum; }
 | |
|             set
 | |
|             {
 | |
|                 _Item.Minimum = value;
 | |
|             }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets or sets the color of the progress percentage text.
 | |
|         /// </summary>
 | |
|         [Category("Appearance"), Description("Indicates color of progress percentage text")]
 | |
|         public Color ProgressTextColor
 | |
|         {
 | |
|             get { return _Item.ProgressTextColor; }
 | |
|             set { _Item.ProgressTextColor = value; }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets whether property should be serialized.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public bool ShouldSerializeProgressTextColor()
 | |
|         {
 | |
|             return _Item.ShouldSerializeProgressTextColor();
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Resets property to its default value.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public void ResetProgressTextColor()
 | |
|         {
 | |
|             _Item.ResetProgressTextColor();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets whether text that displays the progress bar completion percentage text is visible. Default value is false.
 | |
|         /// </summary>
 | |
|         [DefaultValue(false), Category("Appearance"), Description("Indicates whether text that displays the progress bar completion percentage text is visible")]
 | |
|         public bool ProgressTextVisible
 | |
|         {
 | |
|             get { return _Item.ProgressTextVisible; }
 | |
|             set
 | |
|             {
 | |
|                 _Item.ProgressTextVisible = value;
 | |
|             }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets or sets the text displayed on top of the circular progress bar.
 | |
|         /// </summary>
 | |
|         [DefaultValue(""), Category("Appearance"), Description("Indicates text displayed on top of the circular progress bar.")]
 | |
|         public string ProgressText
 | |
|         {
 | |
|             get { return _Item.ProgressText; }
 | |
|             set
 | |
|             {
 | |
|                 _Item.ProgressText = value;
 | |
|             }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets or sets the current value of the progress bar.
 | |
|         /// </summary>
 | |
|         [Description("Indicates current value of the progress bar."), Category("Behavior"), DefaultValue(0)]
 | |
|         public int Value
 | |
|         {
 | |
|             get { return _Item.Value; }
 | |
|             set
 | |
|             {
 | |
|                 _Item.Value = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets whether endless type progress bar is running.
 | |
|         /// </summary>
 | |
|         [Browsable(false), DefaultValue(false)]
 | |
|         public bool IsRunning
 | |
|         {
 | |
|             get { return _Item.IsRunning; }
 | |
|             set
 | |
|             {
 | |
|                 _Item.IsRunning = value;
 | |
|             }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets or sets the color of the color of progress indicator.
 | |
|         /// </summary>
 | |
|         [Category("Columns"), Description("Indicates color of progress indicator.")]
 | |
|         public Color ProgressColor
 | |
|         {
 | |
|             get { return _Item.ProgressColor; }
 | |
|             set { _Item.ProgressColor = value; }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets whether property should be serialized.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public bool ShouldSerializeProgressColor()
 | |
|         {
 | |
|             return _Item.ShouldSerializeProgressColor();
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Resets property to its default value.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public void ResetProgressColor()
 | |
|         {
 | |
|             _Item.ResetProgressColor();
 | |
|         }
 | |
| 
 | |
|         ///// <summary>
 | |
|         ///// Gets or sets circular progress indicator diameter in pixels.
 | |
|         ///// </summary>
 | |
|         //[DefaultValue(24), Category("Appearance"), Description("Indicates circular progress indicator diameter in pixels.")]
 | |
|         //public int Diameter
 | |
|         //{
 | |
|         //    get { return _Item.Diameter; }
 | |
|         //    set
 | |
|         //    {
 | |
|         //        _Item.Diameter = value;
 | |
|         //        this.RecalcLayout();
 | |
|         //    }
 | |
|         //}
 | |
|         ///// <summary>
 | |
|         ///// Gets or sets the text position in relation to the circular progress indicator.
 | |
|         ///// </summary>
 | |
|         //[DefaultValue(eTextPosition.Left), Category("Appearance"), Description("Indicatesd text position in relation to the circular progress indicator.")]
 | |
|         //public eTextPosition TextPosition
 | |
|         //{
 | |
|         //    get { return _Item.TextPosition; }
 | |
|         //    set
 | |
|         //    {
 | |
|         //        _Item.TextPosition = value;
 | |
|         //    }
 | |
|         //}
 | |
|         ///// <summary>
 | |
|         ///// Gets or sets whether text/label displayed next to the item is visible. 
 | |
|         ///// </summary>
 | |
|         //[DefaultValue(true), Category("Appearance"), Description("Indicates whether caption/label set using Text property is visible.")]
 | |
|         //public bool TextVisible
 | |
|         //{
 | |
|         //    get { return _Item.TextVisible; }
 | |
|         //    set
 | |
|         //    {
 | |
|         //        _Item.TextVisible = value;
 | |
|         //    }
 | |
|         //}
 | |
|         ///// <summary>
 | |
|         ///// Gets or sets the suggested text-width. If you want to make sure that text you set wraps over multiple lines you can set suggested text-width so word break is performed.
 | |
|         ///// </summary>
 | |
|         //[DefaultValue(0), Category("Appearance"), Description("Indicates suggested text-width. If you want to make sure that text you set wraps over multiple lines you can set suggested text-width so word break is performed.")]
 | |
|         //public int TextWidth
 | |
|         //{
 | |
|         //    get { return _Item.TextWidth; }
 | |
|         //    set
 | |
|         //    {
 | |
|         //        _Item.TextWidth = value;
 | |
|         //    }
 | |
|         //}
 | |
| 
 | |
|         ///// <summary>
 | |
|         ///// Gets or sets text padding.
 | |
|         ///// </summary>
 | |
|         //[Browsable(true), Category("Appearance"), Description("Gets or sets text padding."), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
 | |
|         //public Padding TextPadding
 | |
|         //{
 | |
|         //    get { return _Item.TextPadding; }
 | |
|         //}
 | |
|         //[EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         //public bool ShouldSerializeTextPadding()
 | |
|         //{
 | |
|         //    return _Item.ShouldSerializeTextPadding();
 | |
|         //}
 | |
|         //[EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         //public void ResetTextPadding()
 | |
|         //{
 | |
|         //    _Item.ResetTextPadding();
 | |
|         //}
 | |
| 
 | |
|         //protected override void OnForeColorChanged(EventArgs e)
 | |
|         //{
 | |
|         //    _Item.TextColor = this.ForeColor;
 | |
|         //    base.OnForeColorChanged(e);
 | |
|         //}
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the color of the pie progress bar dark border. 
 | |
|         /// </summary>
 | |
|         [Category("Pie"), Description("Indicates color of pie progress bar dark border.")]
 | |
|         public Color PieBorderDark
 | |
|         {
 | |
|             get { return _Item.PieBorderDark; }
 | |
|             set { _Item.PieBorderDark = value; }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets whether property should be serialized.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public bool ShouldSerializePieBorderDark()
 | |
|         {
 | |
|             return _Item.ShouldSerializePieBorderDark();
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Resets property to its default value.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public void ResetPieBorderDark()
 | |
|         {
 | |
|             _Item.ResetPieBorderDark();
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets or sets the color of the pie progress bar light border. 
 | |
|         /// </summary>
 | |
|         [Category("Pie"), Description("Indicates color of pie progress bar light border. ")]
 | |
|         public Color PieBorderLight
 | |
|         {
 | |
|             get { return _Item.PieBorderLight; }
 | |
|             set { _Item.PieBorderLight = value; }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets whether property should be serialized.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public bool ShouldSerializePieBorderLight()
 | |
|         {
 | |
|             return _Item.ShouldSerializePieBorderLight();
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Resets property to its default value.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public void ResetPieBorderLight()
 | |
|         {
 | |
|             _Item.ResetPieBorderLight();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the color of the spoke progress bar dark border.
 | |
|         /// </summary>
 | |
|         [Category("Spoke"), Description("Indicates color of spoke progress bar dark border.")]
 | |
|         public Color SpokeBorderDark
 | |
|         {
 | |
|             get { return _Item.SpokeBorderDark; }
 | |
|             set { _Item.SpokeBorderDark = value; }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets whether property should be serialized.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public bool ShouldSerializeSpokeBorderDark()
 | |
|         {
 | |
|             return _Item.ShouldSerializeSpokeBorderDark();
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Resets property to its default value.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public void ResetSpokeBorderDark()
 | |
|         {
 | |
|             _Item.ResetSpokeBorderDark();
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets or sets the color of the spoke progress bar light border.
 | |
|         /// </summary>
 | |
|         [Category("Spoke"), Description("Indicates color of spoke progress bar light border..")]
 | |
|         public Color SpokeBorderLight
 | |
|         {
 | |
|             get { return _Item.SpokeBorderLight; }
 | |
|             set { _Item.SpokeBorderLight = value; }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets whether property should be serialized.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public bool ShouldSerializeSpokeBorderLight()
 | |
|         {
 | |
|             return _Item.ShouldSerializeSpokeBorderLight();
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Resets property to its default value.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public void ResetSpokeBorderLight()
 | |
|         {
 | |
|             _Item.ResetSpokeBorderLight();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets format string for progress value.
 | |
|         /// </summary>
 | |
|         [DefaultValue("{0}%"), Category("Appearance"), Description("Indicates format string for progress value.")]
 | |
|         public string ProgressTextFormat
 | |
|         {
 | |
|             get { return _Item.ProgressTextFormat; }
 | |
|             set
 | |
|             {
 | |
|                 _Item.ProgressTextFormat = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the animation speed for endless running progress. Lower number means faster running.
 | |
|         /// </summary>
 | |
|         [DefaultValue(100), Description("Indicates the animation speed for endless running progress. Lower number means faster running."), Category("Behavior")]
 | |
|         public int AnimationSpeed
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return _Item.AnimationSpeed;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|             	_Item.AnimationSpeed = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Starts the progress bar loop for endless type progress bar. Progress bar will continue to run until Stop() method is called.
 | |
|         /// </summary>
 | |
|         public void Start()
 | |
|         {
 | |
|             _Item.Start();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Stops the progress bar loop for endless type progress bar.
 | |
|         /// </summary>
 | |
|         public void Stop()
 | |
|         {
 | |
|             _Item.Stop(false);
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region Property-Hiding
 | |
|         [Browsable(false)]
 | |
|         public override eDotNetBarStyle Style
 | |
|         {
 | |
|             get { return base.Style; }
 | |
|             set { base.Style = value;}
 | |
|         }
 | |
|         [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | |
|         public override Color ForeColor
 | |
|         {
 | |
|             get { return base.ForeColor; }
 | |
|             set { base.ForeColor = value; }
 | |
|         }
 | |
|         [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | |
|         public override RightToLeft RightToLeft
 | |
|         {
 | |
|             get { return base.RightToLeft; }
 | |
|             set { base.RightToLeft = value; }
 | |
|         }
 | |
|         [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | |
|         public override string Text
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return base.Text;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 base.Text = value;
 | |
|             }
 | |
|         }
 | |
|         [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | |
|         public override Image BackgroundImage
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return base.BackgroundImage;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 base.BackgroundImage = value;
 | |
|             }
 | |
|         }
 | |
|         [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | |
|         public override ImageLayout BackgroundImageLayout
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return base.BackgroundImageLayout;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 base.BackgroundImageLayout = value;
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
|     }
 | |
| }
 |