From 019665015ab30893209ab49fea352405b144f0f8 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Mon, 5 Apr 2021 23:36:26 -0700 Subject: Add gain switch --- grapher/Models/Options/CheckBoxOption.cs | 81 ++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 grapher/Models/Options/CheckBoxOption.cs (limited to 'grapher/Models/Options/CheckBoxOption.cs') diff --git a/grapher/Models/Options/CheckBoxOption.cs b/grapher/Models/Options/CheckBoxOption.cs new file mode 100644 index 0000000..43757b4 --- /dev/null +++ b/grapher/Models/Options/CheckBoxOption.cs @@ -0,0 +1,81 @@ +using System.Windows.Forms; + +namespace grapher.Models.Options +{ + public class CheckBoxOption : OptionBase + { + public CheckBoxOption(CheckBox checkBox) + { + CheckBox = checkBox; + } + + public CheckBox CheckBox { get; } + + public override bool Visible + { + get + { + return CheckBox.Visible; + } + } + + public override int Left + { + get + { + return CheckBox.Left; + } + set + { + CheckBox.Left = value; + } + } + + public override int Height + { + get + { + return CheckBox.Height; + } + } + + public override int Top + { + get + { + return CheckBox.Top; + } + set + { + CheckBox.Top = value; + } + } + + public override int Width + { + get + { + return CheckBox.Width; + } + set + { + CheckBox.Width = value; + } + } + + public override void AlignActiveValues() + { + } + + public override void Hide() + { + CheckBox.Hide(); + } + + public override void Show(string Name) + { + CheckBox.Show(); + CheckBox.Name = Name; + } + } +} -- cgit v1.2.3 From 399aaf96f863029206fc672a1dc4b556ed456c58 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Tue, 6 Apr 2021 00:42:58 -0700 Subject: Fix checkbox not snapping --- grapher/Models/Options/CheckBoxOption.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'grapher/Models/Options/CheckBoxOption.cs') diff --git a/grapher/Models/Options/CheckBoxOption.cs b/grapher/Models/Options/CheckBoxOption.cs index 43757b4..83b2d7a 100644 --- a/grapher/Models/Options/CheckBoxOption.cs +++ b/grapher/Models/Options/CheckBoxOption.cs @@ -7,6 +7,7 @@ namespace grapher.Models.Options public CheckBoxOption(CheckBox checkBox) { CheckBox = checkBox; + Show(string.Empty); } public CheckBox CheckBox { get; } @@ -15,7 +16,7 @@ namespace grapher.Models.Options { get { - return CheckBox.Visible; + return CheckBox.Visible || ShouldShow; } } @@ -63,6 +64,13 @@ namespace grapher.Models.Options } } + /// + /// For some reason, setting CheckBox.Show() does not result in visible not being true on GUI startup. + /// This is inconsistent with the other options, which do. + /// Keep this bool for allowing Visible to still be the signal for option snapping. + /// + private bool ShouldShow { get; set; } + public override void AlignActiveValues() { } @@ -70,11 +78,15 @@ namespace grapher.Models.Options public override void Hide() { CheckBox.Hide(); + ShouldShow = false; + CheckBox.Enabled = false; } public override void Show(string Name) { CheckBox.Show(); + ShouldShow = true; + CheckBox.Enabled = true; CheckBox.Name = Name; } } -- cgit v1.2.3 From 5e858b059436375ed1c17f7dc1b3e47a7e8e1d5d Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Wed, 7 Apr 2021 01:05:59 -0700 Subject: Add active value labels for gain switch --- grapher/Models/Options/CheckBoxOption.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'grapher/Models/Options/CheckBoxOption.cs') diff --git a/grapher/Models/Options/CheckBoxOption.cs b/grapher/Models/Options/CheckBoxOption.cs index 83b2d7a..abf96d3 100644 --- a/grapher/Models/Options/CheckBoxOption.cs +++ b/grapher/Models/Options/CheckBoxOption.cs @@ -4,14 +4,19 @@ namespace grapher.Models.Options { public class CheckBoxOption : OptionBase { - public CheckBoxOption(CheckBox checkBox) + public CheckBoxOption( + CheckBox checkBox, + ActiveValueLabel activeValueLabel) { CheckBox = checkBox; + ActiveValueLabel = activeValueLabel; Show(string.Empty); } public CheckBox CheckBox { get; } + public ActiveValueLabel ActiveValueLabel { get; } + public override bool Visible { get @@ -49,6 +54,7 @@ namespace grapher.Models.Options set { CheckBox.Top = value; + ActiveValueLabel.Top = value; } } @@ -73,6 +79,7 @@ namespace grapher.Models.Options public override void AlignActiveValues() { + ActiveValueLabel.Align(); } public override void Hide() @@ -80,6 +87,7 @@ namespace grapher.Models.Options CheckBox.Hide(); ShouldShow = false; CheckBox.Enabled = false; + ActiveValueLabel.Hide(); } public override void Show(string Name) @@ -88,6 +96,14 @@ namespace grapher.Models.Options ShouldShow = true; CheckBox.Enabled = true; CheckBox.Name = Name; + ActiveValueLabel.Show(); + } + + public void SetActiveValue(bool legacy) + { + CheckBox.Checked = !legacy; + var activeValueString = legacy ? "Legacy" : "Gain"; + ActiveValueLabel.SetValue(activeValueString); } } } -- cgit v1.2.3