50 lines
1.4 KiB
C#
50 lines
1.4 KiB
C#
using System;
|
|
using System.Drawing;
|
|
|
|
namespace Dashboard.Drawing
|
|
{
|
|
public class BrushExtension : DrawExtension
|
|
{
|
|
private BrushExtension() : base("DB_Brush") { }
|
|
|
|
public static readonly BrushExtension Instance = new BrushExtension();
|
|
}
|
|
|
|
public interface IBrush : IDrawResource
|
|
{
|
|
}
|
|
|
|
public readonly struct SolidBrush(Color Color) : IBrush
|
|
{
|
|
public IDrawExtension Kind { get; } = SolidBrushExtension.Instance;
|
|
public override int GetHashCode()
|
|
{
|
|
return HashCode.Combine(Kind, Color);
|
|
}
|
|
}
|
|
|
|
public readonly struct GradientBrush(Gradient Gradient) : IBrush
|
|
{
|
|
public IDrawExtension Kind { get; } = GradientBrushExtension.Instance;
|
|
|
|
public override int GetHashCode()
|
|
{
|
|
return HashCode.Combine(Kind, Gradient);
|
|
}
|
|
}
|
|
|
|
public class SolidBrushExtension : DrawExtension
|
|
{
|
|
private SolidBrushExtension() : base("DB_Brush_solid", new[] { BrushExtension.Instance }) { }
|
|
|
|
public static readonly SolidBrushExtension Instance = new SolidBrushExtension();
|
|
}
|
|
|
|
public class GradientBrushExtension : DrawExtension
|
|
{
|
|
private GradientBrushExtension() : base("DB_Brush_gradient", new[] { BrushExtension.Instance }) { }
|
|
|
|
public static readonly GradientBrushExtension Instance = new GradientBrushExtension();
|
|
}
|
|
}
|