#nullable enable using ColorHelper; using ColorConverter = ColorHelper.ColorConverter; namespace Terminal.Gui; internal class LightnessBar : ColorBar { public HueBar? HBar { get; set; } public SaturationBar? SBar { get; set; } /// protected override Color GetColor (double fraction) { if (HBar == null || SBar == null) { throw new ($"{nameof (LightnessBar)} has not been set up correctly before drawing"); } var hsl = new HSL (HBar.Value, (byte)SBar.Value, (byte)(MaxValue * fraction)); RGB rgb = ColorConverter.HslToRgb (hsl); return new (rgb.R, rgb.G, rgb.B); } /// protected override int MaxValue => 100; }