164 lines
4.6 KiB
C#
164 lines
4.6 KiB
C#
using System.ComponentModel;
|
|
using System.Drawing;
|
|
|
|
namespace DevComponents.DotNetBar.Rendering
|
|
{
|
|
/// <summary>
|
|
/// Represents the color table of linear gradient.
|
|
/// </summary>
|
|
public class LinearGradientColorTable
|
|
{
|
|
public static readonly LinearGradientColorTable Empty = new LinearGradientColorTable();
|
|
|
|
#region Private variables
|
|
|
|
private Color _Start = Color.Empty;
|
|
private Color _End = Color.Empty;
|
|
private int _GradientAngle = 90;
|
|
|
|
#endregion
|
|
|
|
#region Constructors
|
|
|
|
/// <summary>
|
|
/// Creates new instance of the object.
|
|
/// </summary>
|
|
public LinearGradientColorTable() { }
|
|
/// <summary>
|
|
/// Creates new instance of the object.
|
|
/// </summary>
|
|
/// <param name="start">Start color.</param>
|
|
public LinearGradientColorTable(Color start)
|
|
{
|
|
this.Start = start;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates new instance of the object.
|
|
/// </summary>
|
|
/// <param name="start">Start color.</param>
|
|
/// <param name="end">End color.</param>
|
|
public LinearGradientColorTable(Color start, Color end)
|
|
{
|
|
this.Start = start;
|
|
this.End = end;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates new instance of the object.
|
|
/// </summary>
|
|
/// <param name="start">Start color in hexadecimal representation like FFFFFF.</param>
|
|
/// <param name="end">End color in hexadecimal representation like FFFFFF.</param>
|
|
public LinearGradientColorTable(string start, string end)
|
|
{
|
|
this.Start = ColorScheme.GetColor(start);
|
|
this.End = ColorScheme.GetColor(end);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates new instance of the object.
|
|
/// </summary>
|
|
/// <param name="start">Start color in 32-bit RGB representation.</param>
|
|
public LinearGradientColorTable(int start)
|
|
{
|
|
this.Start = ColorScheme.GetColor(start);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates new instance of the object.
|
|
/// </summary>
|
|
/// <param name="start">Start color in 32-bit RGB representation.</param>
|
|
/// <param name="end">End color in 32-bit RGB representation.</param>
|
|
public LinearGradientColorTable(int start, int end)
|
|
{
|
|
this.Start = ColorScheme.GetColor(start);
|
|
this.End = ColorScheme.GetColor(end);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates new instance of the object.
|
|
/// </summary>
|
|
/// <param name="start">Start color in 32-bit RGB representation.</param>
|
|
/// <param name="end">End color in 32-bit RGB representation.</param>
|
|
/// <param name="gradientAngle">Gradient angle.</param>
|
|
public LinearGradientColorTable(int start, int end, int gradientAngle)
|
|
{
|
|
this.Start = ColorScheme.GetColor(start);
|
|
this.End = ColorScheme.GetColor(end);
|
|
this.GradientAngle = gradientAngle;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates new instance of the object.
|
|
/// </summary>
|
|
/// <param name="start">Start color.</param>
|
|
/// <param name="end">End color.</param>
|
|
/// <param name="gradientAngle">Gradient angle.</param>
|
|
public LinearGradientColorTable(Color start, Color end, int gradientAngle)
|
|
{
|
|
this.Start = start;
|
|
this.End = end;
|
|
this.GradientAngle = gradientAngle;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Public properties
|
|
|
|
#region Start
|
|
|
|
/// <summary>
|
|
/// Gets or sets the start color.
|
|
/// </summary>
|
|
public Color Start
|
|
{
|
|
get { return (_Start); }
|
|
set { _Start = value; }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region End
|
|
|
|
/// <summary>
|
|
/// Gets or sets the end color.
|
|
/// </summary>
|
|
public Color End
|
|
{
|
|
get { return (_End); }
|
|
set { _End = value; }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region GradientAngle
|
|
|
|
/// <summary>
|
|
/// Gets or sets the gradient angle. Default value is 90.
|
|
/// </summary>
|
|
public int GradientAngle
|
|
{
|
|
get { return (_GradientAngle); }
|
|
set { _GradientAngle = value; }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region IsEmpty
|
|
|
|
/// <summary>
|
|
/// Gets whether both colors assigned are empty.
|
|
/// </summary>
|
|
[Browsable(false)]
|
|
public virtual bool IsEmpty
|
|
{
|
|
get { return (Start.IsEmpty && End.IsEmpty && GradientAngle == 90); }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|