660 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			660 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Drawing;
 | 
						|
using System.Text;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar.Controls
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Data storage class for clock visual styles.
 | 
						|
    /// </summary>
 | 
						|
    [Description("Clock Style"),
 | 
						|
    TypeConverterAttribute(typeof(ExpandableObjectConverter))]
 | 
						|
    public class ClockStyleData : IDisposable, INotifyPropertyChanged
 | 
						|
    {
 | 
						|
 | 
						|
        private eClockStyles _Style;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the PredefinedStyles value for this style.
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(false)]
 | 
						|
        public eClockStyles Style
 | 
						|
        {
 | 
						|
            get { return _Style; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _Style)
 | 
						|
                {
 | 
						|
                    _Style = value;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("Style"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        private eClockShapes _ClockShape;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the clock shape value for this style.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(eClockShapes.Round),
 | 
						|
        Category("Appearance"),
 | 
						|
        Description("The clock shape for this style.")]
 | 
						|
        public eClockShapes ClockShape
 | 
						|
        {
 | 
						|
            get { return _ClockShape; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _ClockShape)
 | 
						|
                {
 | 
						|
                    _ClockShape = value;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("ClockShape"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private void ColorPropertyChanged(object sender, PropertyChangedEventArgs e)
 | 
						|
        {
 | 
						|
            if (_Parent != null) _Parent.Invalidate();
 | 
						|
        }
 | 
						|
 | 
						|
        private ColorData _BezelColor;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the bezel color data for this style.
 | 
						|
        /// </summary>
 | 
						|
        [Category("Appearance"),
 | 
						|
        Description("The bezel color data for this style.")]
 | 
						|
        public ColorData BezelColor
 | 
						|
        {
 | 
						|
            get { return _BezelColor; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _BezelColor)
 | 
						|
                {
 | 
						|
                    if (_BezelColor != null) _BezelColor.PropertyChanged -= ColorPropertyChanged;
 | 
						|
                    _BezelColor = value;
 | 
						|
                    if (_BezelColor != null) _BezelColor.PropertyChanged += ColorPropertyChanged;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("BezelColor"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Resets the property to default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetBezelColor()
 | 
						|
        {
 | 
						|
            BezelColor = new ColorData(eBrushTypes.Linear, Color.FromArgb(255, 255, 255), Color.FromArgb(152, 152, 152), Color.FromArgb(120, 120, 120), 1.0f, 45.0f);
 | 
						|
        }
 | 
						|
        
 | 
						|
 | 
						|
        private float _BezelWidth;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the width of clock bezel as a percentage value ranging from 0.0 to 1.0.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(0.03f),
 | 
						|
        Category("Appearance"),
 | 
						|
        Description("The width of clock bezel as a percentage value ranging from 0.0 to 1.0.")]
 | 
						|
        public float BezelWidth
 | 
						|
        {
 | 
						|
            get { return _BezelWidth; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _BezelWidth)
 | 
						|
                {
 | 
						|
                    _BezelWidth = value;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("BezelWidth"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private ColorData _FaceColor;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the face color data for this style.
 | 
						|
        /// </summary>
 | 
						|
        [Category("Appearance"),
 | 
						|
        Description("The face color data for this style.")]
 | 
						|
        public ColorData FaceColor
 | 
						|
        {
 | 
						|
            get { return _FaceColor; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _FaceColor)
 | 
						|
                {
 | 
						|
                    if (_FaceColor != null) _FaceColor.PropertyChanged -= ColorPropertyChanged;
 | 
						|
                    _FaceColor = value;
 | 
						|
                    if (_FaceColor != null) _FaceColor.PropertyChanged += ColorPropertyChanged;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("FaceColor"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Resets the property to default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetFaceColor()
 | 
						|
        {
 | 
						|
            FaceColor = new ColorData(eBrushTypes.Linear, Color.FromArgb(191, 204, 213), Color.FromArgb(255, 255, 255), Color.FromArgb(135, 145, 161), 1.0f, 45.0f);
 | 
						|
        }
 | 
						|
 | 
						|
        private Image _FaceBackgroundImage;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the face background image for this style.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(null),
 | 
						|
        Category("Appearance"),
 | 
						|
        Description("The face background image for this style.")]
 | 
						|
        public Image FaceBackgroundImage
 | 
						|
        {
 | 
						|
            get { return _FaceBackgroundImage; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _FaceBackgroundImage)
 | 
						|
                {
 | 
						|
                    _FaceBackgroundImage = value;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("FaceBackgroundImage"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private ClockHandStyleData _HourHandStyle;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the hour hand style for this style.
 | 
						|
        /// </summary>
 | 
						|
        [Category("Appearance"),
 | 
						|
        Description("The hour hand style for this style.")]
 | 
						|
        public ClockHandStyleData HourHandStyle
 | 
						|
        {
 | 
						|
            get { return _HourHandStyle; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _HourHandStyle)
 | 
						|
                {
 | 
						|
                    if (_HourHandStyle != null) _HourHandStyle.PropertyChanged -= ColorPropertyChanged;
 | 
						|
                    _HourHandStyle = value;
 | 
						|
                    if (_HourHandStyle != null) _HourHandStyle.PropertyChanged += ColorPropertyChanged;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("HourHandStyle"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Resets the property to default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetHourHandStyle()
 | 
						|
        {
 | 
						|
            HourHandStyle = new ClockHandStyleData(eHandStyles.Style1, 0.55f, 0.01f);
 | 
						|
        }
 | 
						|
 | 
						|
        private ClockHandStyleData _MinuteHandStyle;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the minute hand style for this style.
 | 
						|
        /// </summary>
 | 
						|
        [Category("Appearance"),
 | 
						|
        Description("The minute hand style for this style.")]
 | 
						|
        public ClockHandStyleData MinuteHandStyle
 | 
						|
        {
 | 
						|
            get { return _MinuteHandStyle; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _MinuteHandStyle)
 | 
						|
                {
 | 
						|
                    if (_MinuteHandStyle != null) _MinuteHandStyle.PropertyChanged -= ColorPropertyChanged;
 | 
						|
                    _MinuteHandStyle = value;
 | 
						|
                    if (_MinuteHandStyle != null) _MinuteHandStyle.PropertyChanged += ColorPropertyChanged;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("MinuteHandStyle"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Resets the property to default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetMinuteHandStyle()
 | 
						|
        {
 | 
						|
            MinuteHandStyle = new ClockHandStyleData(eHandStyles.Style1, 0.8f, 0.01f);
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        private ClockHandStyleData _SecondHandStyle;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the second hand style for this style.
 | 
						|
        /// </summary>
 | 
						|
        [Category("Appearance"),
 | 
						|
        Description("The second hand style for this style.")]
 | 
						|
        public ClockHandStyleData SecondHandStyle
 | 
						|
        {
 | 
						|
            get { return _SecondHandStyle; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _SecondHandStyle)
 | 
						|
                {
 | 
						|
                    if (_SecondHandStyle != null) _SecondHandStyle.PropertyChanged -= ColorPropertyChanged;
 | 
						|
                    _SecondHandStyle = value;
 | 
						|
                    if (_SecondHandStyle != null) _SecondHandStyle.PropertyChanged += ColorPropertyChanged;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("SecondHandStyle"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Resets the property to default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetSecondHandStyle()
 | 
						|
        {
 | 
						|
            SecondHandStyle = new ClockHandStyleData(eHandStyles.Style2, 0.8f, 0.005f);
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        private ColorData _CapColor;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the center cap color data for this style.
 | 
						|
        /// </summary>
 | 
						|
        [Category("Appearance"),
 | 
						|
        Description("The center cap color data for this style.")]
 | 
						|
        public ColorData CapColor
 | 
						|
        {
 | 
						|
            get { return _CapColor; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _CapColor)
 | 
						|
                {
 | 
						|
                    if (_CapColor != null) _CapColor.PropertyChanged -= ColorPropertyChanged;
 | 
						|
                    _CapColor = value;
 | 
						|
                    if (_CapColor != null) _CapColor.PropertyChanged += ColorPropertyChanged;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("CapColor"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Resets the property to default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetCapColor()
 | 
						|
        {
 | 
						|
            CapColor = new ColorData(eBrushTypes.Solid, Color.FromArgb(109, 127, 138), Color.FromArgb(109, 127, 138), Color.FromArgb(128, 109, 127, 138), 0.01f);
 | 
						|
        }
 | 
						|
 | 
						|
        private float _CapSize;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the center cap diameter as a percentage value ranging from 0.0 to 1.0.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(0.03f),
 | 
						|
        Category("Appearance"),
 | 
						|
        Description("The center cap diameter as a percentage value ranging from 0.0 to 1.0.")]
 | 
						|
        public float CapSize
 | 
						|
        {
 | 
						|
            get { return _CapSize; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _CapSize)
 | 
						|
                {
 | 
						|
                    _CapSize = value;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("CapSize"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private Color _NumberColor;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the face number color for this style.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(typeof(Color), "139, 158, 168"), 
 | 
						|
        Category("Appearance"),
 | 
						|
        Description("The face number color for this style.")]
 | 
						|
        public Color NumberColor
 | 
						|
        {
 | 
						|
            get { return _NumberColor; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _NumberColor)
 | 
						|
                {
 | 
						|
                    _NumberColor = value;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("NumberColor"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        
 | 
						|
        private Font _NumberFont;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the center cap color data for this style.
 | 
						|
        /// </summary>
 | 
						|
        [Category("Appearance"),
 | 
						|
        Description("The face number font for this style.")]
 | 
						|
        public Font NumberFont
 | 
						|
        {
 | 
						|
            get { return _NumberFont; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _NumberFont)
 | 
						|
                {
 | 
						|
                    _NumberFont = value;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("NumberFont"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Resets the property to default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetNumberFont()
 | 
						|
        {
 | 
						|
            _NumberFont = new Font("Microsoft Sans Serif", 8, FontStyle.Regular, GraphicsUnit.Pixel);
 | 
						|
        }
 | 
						|
 | 
						|
        private ColorData _LargeTickColor;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the large tick color data for this style.
 | 
						|
        /// </summary>
 | 
						|
        [Category("Appearance"),
 | 
						|
        Description("The large tick color data for this style.")]
 | 
						|
        public ColorData LargeTickColor
 | 
						|
        {
 | 
						|
            get { return _LargeTickColor; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _LargeTickColor)
 | 
						|
                {
 | 
						|
                    if (_LargeTickColor != null) _LargeTickColor.PropertyChanged -= ColorPropertyChanged;
 | 
						|
                    _LargeTickColor = value;
 | 
						|
                    if (_LargeTickColor != null) _LargeTickColor.PropertyChanged += ColorPropertyChanged;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("LargeTickColor"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Resets the property to default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetLargeTickColor()
 | 
						|
        {
 | 
						|
            LargeTickColor = new ColorData(eBrushTypes.Centered, Color.FromArgb(122, 142, 154), Color.FromArgb(122, 142, 154), Color.FromArgb(255, 255, 255), 1.0f);
 | 
						|
        }
 | 
						|
 | 
						|
        private float _LargeTickLength;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the large tick length as a percentage value ranging from 0.0 to 1.0.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(0.06f),
 | 
						|
        Category("Appearance"),
 | 
						|
        Description("The large tick length as a percentage value ranging from 0.0 to 1.0.")]
 | 
						|
        public float LargeTickLength
 | 
						|
        {
 | 
						|
            get { return _LargeTickLength; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _LargeTickLength)
 | 
						|
                {
 | 
						|
                    _LargeTickLength = value;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("LargeTickLength"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private float _LargeTickWidth;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the large tick width as a percentage value ranging from 0.0 to 1.0.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(0.02f),
 | 
						|
        Category("Appearance"),
 | 
						|
        Description("The large tick width as a percentage value ranging from 0.0 to 1.0.")]
 | 
						|
        public float LargeTickWidth
 | 
						|
        {
 | 
						|
            get { return _LargeTickWidth; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _LargeTickWidth)
 | 
						|
                {
 | 
						|
                    _LargeTickWidth = value;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("LargeTickWidth"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private ColorData _SmallTickColor;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the small tick color data for this style.
 | 
						|
        /// </summary>
 | 
						|
        [Category("Appearance"),
 | 
						|
        Description("The small tick color data for this style.")]
 | 
						|
        public ColorData SmallTickColor
 | 
						|
        {
 | 
						|
            get { return _SmallTickColor; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _SmallTickColor)
 | 
						|
                {
 | 
						|
                    if (_SmallTickColor != null) _SmallTickColor.PropertyChanged -= ColorPropertyChanged;
 | 
						|
                    _SmallTickColor = value;
 | 
						|
                    if (_SmallTickColor != null) _SmallTickColor.PropertyChanged += ColorPropertyChanged;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("SmallTickColor"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Resets the property to default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        public void ResetSmallTickColor()
 | 
						|
        {
 | 
						|
            SmallTickColor = new ColorData(eBrushTypes.Centered, Color.FromArgb(122, 142, 154), Color.FromArgb(122, 142, 154), Color.FromArgb(255, 255, 255), 1.0f);
 | 
						|
        }
 | 
						|
 | 
						|
        private float _SmallTickLength;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the small tick length as a percentage value ranging from 0.0 to 1.0.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(0.02f),
 | 
						|
        Category("Appearance"),
 | 
						|
        Description("The small tick length as a percentage value ranging from 0.0 to 1.0.")]
 | 
						|
        public float SmallTickLength
 | 
						|
        {
 | 
						|
            get { return _SmallTickLength; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _SmallTickLength)
 | 
						|
                {
 | 
						|
                    _SmallTickLength = value;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("SmallTickLength"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private float _SmallTickWidth;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the small tick width as a percentage value ranging from 0.0 to 1.0.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(0.02f),
 | 
						|
        Category("Appearance"),
 | 
						|
        Description("The small tick width as a percentage value ranging from 0.0 to 1.0.")]
 | 
						|
        public float SmallTickWidth
 | 
						|
        {
 | 
						|
            get { return _SmallTickWidth; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _SmallTickWidth)
 | 
						|
                {
 | 
						|
                    _SmallTickWidth = value;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("SmallTickWidth"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private int _GlassAngle;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the overlay glass angle, in degrees for this style.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(20),
 | 
						|
        Category("Appearance"),
 | 
						|
        Description("The overlay angle, in degrees for this style.")]
 | 
						|
        public int GlassAngle
 | 
						|
        {
 | 
						|
            get { return _GlassAngle; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _GlassAngle)
 | 
						|
                {
 | 
						|
                    _GlassAngle = value;
 | 
						|
                    OnPropertyChanged(new PropertyChangedEventArgs("_GlassAngle"));
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Occurs when property value has changed.
 | 
						|
        /// </summary>
 | 
						|
        public event PropertyChangedEventHandler PropertyChanged;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Initializes a new instance of the ClockStyle class.
 | 
						|
        /// </summary>
 | 
						|
        public ClockStyleData()
 | 
						|
        {
 | 
						|
            LoadStyle(eClockStyles.Style1);
 | 
						|
        }
 | 
						|
 | 
						|
        private AnalogClockControl _Parent = null;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the parent of the style.
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | 
						|
        public AnalogClockControl Parent
 | 
						|
        {
 | 
						|
            get { return _Parent; }
 | 
						|
            internal set { _Parent = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Initializes a new instance of the ClockStyle class.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="style">Predefined style from the PredefinedStyles enum.</param>
 | 
						|
        public ClockStyleData(eClockStyles style)
 | 
						|
        {
 | 
						|
            LoadStyle(style);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Initializes a new instance of the ClockStyle class.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="style">Predefined style from the PredefinedStyles enum.</param>
 | 
						|
        public ClockStyleData(eClockStyles style, AnalogClockControl parent)
 | 
						|
        {
 | 
						|
            LoadStyle(style);
 | 
						|
            _Parent = parent;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Releases all resources used by the class. 
 | 
						|
        /// </summary>
 | 
						|
        public void Dispose()
 | 
						|
        {
 | 
						|
            if (_FaceBackgroundImage != null)
 | 
						|
                _FaceBackgroundImage.Dispose();
 | 
						|
            if (_NumberFont != null)
 | 
						|
                _NumberFont.Dispose();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Loads a predefined style
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="style">The predefined style to load.</param>
 | 
						|
        private void LoadStyle(eClockStyles style)
 | 
						|
        {
 | 
						|
            _Style = style;
 | 
						|
            switch (style)
 | 
						|
            {
 | 
						|
                case eClockStyles.Style1:
 | 
						|
                case eClockStyles.Custom:
 | 
						|
                    _ClockShape = eClockShapes.Round;
 | 
						|
                    BezelColor = new ColorData(eBrushTypes.Linear, Color.FromArgb(255, 255, 255), Color.FromArgb(152, 152, 152), Color.FromArgb(120, 120, 120), 0.01f);
 | 
						|
                    _BezelWidth = 0.03f;
 | 
						|
                    FaceColor = new ColorData(eBrushTypes.Linear, Color.FromArgb(191, 204, 213), Color.FromArgb(255, 255, 255), Color.FromArgb(135, 145, 161), 0.01f, 45.0f);
 | 
						|
                    _FaceBackgroundImage = null;
 | 
						|
                    HourHandStyle = new ClockHandStyleData(eHandStyles.Style1, 0.55f, 0.015f);
 | 
						|
                    MinuteHandStyle = new ClockHandStyleData(eHandStyles.Style1, 0.8f, 0.01f);
 | 
						|
                    SecondHandStyle = new ClockHandStyleData(eHandStyles.Style2, 0.8f, 0.005f);
 | 
						|
                    CapColor = new ColorData(eBrushTypes.Solid, Color.FromArgb(109, 127, 138), Color.FromArgb(109, 127, 138), Color.FromArgb(128, 109, 127, 138), 0.01f);
 | 
						|
                    _CapSize = 0.03f;
 | 
						|
                    _NumberColor = Color.FromArgb(139, 158, 168);
 | 
						|
                    _NumberFont = new Font("Microsoft Sans Serif", 12, FontStyle.Regular, GraphicsUnit.Pixel);
 | 
						|
                    LargeTickColor = new ColorData(eBrushTypes.Linear, Color.FromArgb(122, 142, 154), Color.FromArgb(122, 142, 154), Color.FromArgb(128, 255, 255, 255), 0.01f);
 | 
						|
                    _LargeTickLength = 0.06f;
 | 
						|
                    _LargeTickWidth = 0.02f;
 | 
						|
                    SmallTickColor = new ColorData(eBrushTypes.Linear, Color.FromArgb(122, 142, 154), Color.FromArgb(122, 142, 154), Color.FromArgb(128, 255, 255, 255), 0.01f);
 | 
						|
                    _SmallTickLength = 0.02f;
 | 
						|
                    _SmallTickWidth = 0.02f;
 | 
						|
                    _GlassAngle = -20;
 | 
						|
                    break;
 | 
						|
                case eClockStyles.Style2:
 | 
						|
                    _ClockShape = eClockShapes.Round;
 | 
						|
                    BezelColor = new ColorData(eBrushTypes.Linear, Color.FromArgb(80, 80, 80), Color.FromArgb(0, 0, 0), Color.FromArgb(0, 0, 0), 0.0f, 90.0f);
 | 
						|
                    _BezelWidth = 0.03f;
 | 
						|
                    FaceColor = new ColorData(eBrushTypes.Linear, Color.FromArgb(225, 225, 225), Color.FromArgb(240, 240, 240), Color.FromArgb(0, 0, 0), 0.0f, 90.0f);
 | 
						|
                    _FaceBackgroundImage = null;
 | 
						|
                    HourHandStyle = new ClockHandStyleData(eHandStyles.Style3, 0.45f, 0.175f);
 | 
						|
                    HourHandStyle.HandColor = new ColorData(eBrushTypes.Linear, Color.FromArgb(0, 0, 0), Color.FromArgb(80, 80, 80), Color.FromArgb(64, 0, 0, 0), 0.01f, 90.0f);
 | 
						|
                    MinuteHandStyle = new ClockHandStyleData(eHandStyles.Style3, 0.75f, 0.175f);
 | 
						|
                    MinuteHandStyle.HandColor = new ColorData(eBrushTypes.Linear, Color.FromArgb(0, 0, 0), Color.FromArgb(80, 80, 80), Color.FromArgb(64, 0, 0, 0), 0.01f, 90.0f);
 | 
						|
                    SecondHandStyle = new ClockHandStyleData(eHandStyles.Style4, 0.9f, 0.01f);
 | 
						|
                    SecondHandStyle.HandColor = new ColorData(eBrushTypes.Solid, Color.FromArgb(255, 0, 0), Color.FromArgb(255, 0, 0), Color.FromArgb(128, 192, 0, 0), 0.01f);
 | 
						|
                    _SecondHandStyle.DrawOverCap = true;
 | 
						|
                    CapColor = new ColorData(eBrushTypes.Solid, Color.FromArgb(255, 255, 255), Color.FromArgb(255, 255, 255), Color.FromArgb(223, 0, 0, 0), 0.01f);
 | 
						|
                    _CapSize = 0.1f;
 | 
						|
                    _NumberColor = Color.FromArgb(0, 0, 0);
 | 
						|
                    _NumberFont = new Font("Trebuchet MS", 12, FontStyle.Regular, GraphicsUnit.Pixel);
 | 
						|
                    LargeTickColor = new ColorData(eBrushTypes.Solid, Color.FromArgb(0, 0, 0), Color.FromArgb(0, 0, 0), Color.FromArgb(64, 0, 0, 0), 0.01f);
 | 
						|
                    _LargeTickLength = 0.06f;
 | 
						|
                    _LargeTickWidth = 0.01f;
 | 
						|
                    SmallTickColor = new ColorData(eBrushTypes.Solid, Color.FromArgb(0, 0, 0), Color.FromArgb(0, 0, 0), Color.FromArgb(64, 0, 0, 0), 0.01f);
 | 
						|
                    _SmallTickLength = 0.01f;
 | 
						|
                    _SmallTickWidth = 0.01f;
 | 
						|
                    _GlassAngle = 0;
 | 
						|
                    break;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Raises the PropertyChanged event.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="e">Event arguments</param>
 | 
						|
        protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
 | 
						|
        {
 | 
						|
            if (PropertyChanged != null)
 | 
						|
                PropertyChanged(this, e);
 | 
						|
            if (_Parent != null) _Parent.Invalidate();
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Enumeration containing the predefined clock styles.
 | 
						|
    /// </summary>
 | 
						|
    public enum eClockStyles
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// Style 1. Default style,
 | 
						|
        /// </summary>
 | 
						|
        Style1,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Style 2.
 | 
						|
        /// </summary>
 | 
						|
        Style2,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// No predefined style.
 | 
						|
        /// </summary>
 | 
						|
        Custom
 | 
						|
    }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Enumeration containing the predefined clock shapes.
 | 
						|
    /// </summary>
 | 
						|
    public enum eClockShapes
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// Round clock shape.
 | 
						|
        /// </summary>
 | 
						|
        Round
 | 
						|
    }
 | 
						|
}
 |