249 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			249 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Drawing;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar
 | 
						|
{
 | 
						|
	/// <summary>
 | 
						|
	/// Represents colors for the active tab.
 | 
						|
	/// </summary>
 | 
						|
	[ToolboxItem(false), TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
 | 
						|
	public class TabColors
 | 
						|
	{
 | 
						|
		#region Events
 | 
						|
		/// <summary>
 | 
						|
		/// Occurs after color property has changed.
 | 
						|
		/// </summary>
 | 
						|
		public event EventHandler ColorChanged;
 | 
						|
		#endregion
 | 
						|
 | 
						|
		#region Private Variables
 | 
						|
		private Color m_BackColor=Color.Empty;
 | 
						|
		private Color m_BackColor2=Color.Empty;
 | 
						|
		private int m_BackColorGradientAngle=90;
 | 
						|
		private Color m_LightBorderColor=Color.Empty;
 | 
						|
		private Color m_DarkBorderColor=Color.Empty;
 | 
						|
		private Color m_BorderColor=Color.Empty;
 | 
						|
		private Color m_TextColor=Color.Empty;
 | 
						|
        private BackgroundColorBlendCollection m_BackgroundColorBlend = new BackgroundColorBlendCollection();
 | 
						|
		#endregion
 | 
						|
 | 
						|
		#region Internal Implementation
 | 
						|
		/// <summary>
 | 
						|
		/// Creates new instance of the object.
 | 
						|
		/// </summary>
 | 
						|
		public TabColors(){}
 | 
						|
		/// <summary>
 | 
						|
		/// Gets or sets the background color of the tab when inactive.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(true),Description("Indicates the inactive tab background color."),Category("Style")]
 | 
						|
		public Color BackColor
 | 
						|
		{
 | 
						|
			get {return m_BackColor;}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				m_BackColor=value;
 | 
						|
				this.Refresh();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// Returns whether property should be serialized.
 | 
						|
		/// </summary>
 | 
						|
		/// <returns>true if property should be serialized otherwise false.</returns>
 | 
						|
		[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
		public bool ShouldSerializeBackColor()
 | 
						|
		{
 | 
						|
			return !m_BackColor.IsEmpty;
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// Resets property to the default value.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
		public void ResetBackColor()
 | 
						|
		{
 | 
						|
			BackColor=Color.Empty;
 | 
						|
		}
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// Gets or sets the target gradient background color of the tab when inactive.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(true),Description("Indicates the inactive tab target gradient background color."),Category("Style")]
 | 
						|
		public Color BackColor2
 | 
						|
		{
 | 
						|
			get {return m_BackColor2;}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				m_BackColor2=value;
 | 
						|
				this.Refresh();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// Returns whether property should be serialized.
 | 
						|
		/// </summary>
 | 
						|
		/// <returns>true if property should be serialized otherwise false.</returns>
 | 
						|
		[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
		public bool ShouldSerializeBackColor2()
 | 
						|
		{
 | 
						|
			return !m_BackColor2.IsEmpty;
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// Resets property to the default value.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
		public void ResetBackColor2()
 | 
						|
		{
 | 
						|
			BackColor2=Color.Empty;
 | 
						|
		}
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// Gets or sets the gradient angle.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(true),Description("Indicates the gradient angle."),Category("Style"),DefaultValue(90)]
 | 
						|
		public int BackColorGradientAngle
 | 
						|
		{
 | 
						|
			get {return m_BackColorGradientAngle;}
 | 
						|
			set {m_BackColorGradientAngle=value;this.Refresh();}
 | 
						|
		}
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the collection that defines the multi-color gradient background for tab item..
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Description("Collection that defines the multicolor gradient background.")]
 | 
						|
        public BackgroundColorBlendCollection BackgroundColorBlend
 | 
						|
        {
 | 
						|
            get { return m_BackgroundColorBlend; }
 | 
						|
        }
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// Gets or sets the light border color when tab is inactive.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(true),Description("Indicates the inactive tab light border color."),Category("Style")]
 | 
						|
		public Color LightBorderColor
 | 
						|
		{
 | 
						|
			get {return m_LightBorderColor;}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				m_LightBorderColor=value;
 | 
						|
				this.Refresh();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// Returns whether property should be serialized.
 | 
						|
		/// </summary>
 | 
						|
		/// <returns>true if property should be serialized otherwise false.</returns>
 | 
						|
		[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
		public bool ShouldSerializeLightBorderColor()
 | 
						|
		{
 | 
						|
			return !m_LightBorderColor.IsEmpty;
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// Resets property to the default value.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
		public void ResetLightBorderColor()
 | 
						|
		{
 | 
						|
			LightBorderColor=Color.Empty;
 | 
						|
		}
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// Gets or sets the dark border color when tab is inactive.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(true),Description("Indicates the inactive tab dark border color."),Category("Style")]
 | 
						|
		public Color DarkBorderColor
 | 
						|
		{
 | 
						|
			get {return m_DarkBorderColor;}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				m_DarkBorderColor=value;
 | 
						|
				this.Refresh();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// Returns whether property should be serialized.
 | 
						|
		/// </summary>
 | 
						|
		/// <returns>true if property should be serialized otherwise false.</returns>
 | 
						|
		[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
		public bool ShouldSerializeDarkBorderColor()
 | 
						|
		{
 | 
						|
			return !m_DarkBorderColor.IsEmpty;
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// Resets property to the default value.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
		public void ResetDarkBorderColor()
 | 
						|
		{
 | 
						|
			DarkBorderColor=Color.Empty;
 | 
						|
		}
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// Gets or sets the border color when tab is inactive.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(true),Description("Indicates the inactive tab border color."),Category("Style")]
 | 
						|
		public Color BorderColor
 | 
						|
		{
 | 
						|
			get {return m_BorderColor;}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				m_BorderColor=value;
 | 
						|
				this.Refresh();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// Returns whether property should be serialized.
 | 
						|
		/// </summary>
 | 
						|
		/// <returns>true if property should be serialized otherwise false.</returns>
 | 
						|
		[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
		public bool ShouldSerializeBorderColor()
 | 
						|
		{
 | 
						|
			return !m_BorderColor.IsEmpty;
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// Resets property to the default value.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
		public void ResetBorderColor()
 | 
						|
		{
 | 
						|
			BorderColor=Color.Empty;
 | 
						|
		}
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// Gets or sets the text color when tab is inactive.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(true),Description("Indicates the inactive tab text color."),Category("Style")]
 | 
						|
		public Color TextColor
 | 
						|
		{
 | 
						|
			get {return m_TextColor;}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				m_TextColor=value;
 | 
						|
				this.Refresh();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// Returns whether property should be serialized.
 | 
						|
		/// </summary>
 | 
						|
		/// <returns>true if property should be serialized otherwise false.</returns>
 | 
						|
		[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
		public bool ShouldSerializeTextColor()
 | 
						|
		{
 | 
						|
			return !m_TextColor.IsEmpty;
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// Resets property to the default value.
 | 
						|
		/// </summary>
 | 
						|
		[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
		public void ResetTextColor()
 | 
						|
		{
 | 
						|
			TextColor=Color.Empty;
 | 
						|
		}
 | 
						|
 | 
						|
		private void Refresh()
 | 
						|
		{
 | 
						|
			if(ColorChanged!=null)
 | 
						|
				ColorChanged(this,new EventArgs());
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
	}
 | 
						|
}
 |