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
 | 
						|
    }
 | 
						|
}
 |