summaryrefslogtreecommitdiff
path: root/grapher/Models/Options/Cap/CapOptions.cs
diff options
context:
space:
mode:
authorJacob Palecki <[email protected]>2021-09-14 00:55:21 -0700
committera1xd <[email protected]>2021-09-23 22:34:51 -0400
commit6c037f92a350d8622f3739b1033c909912860d77 (patch)
treed8ddfa354176b0fa43713e47e8424cd466b6eeaa /grapher/Models/Options/Cap/CapOptions.cs
parentSome reorganizing (diff)
downloadrawaccel-6c037f92a350d8622f3739b1033c909912860d77.tar.xz
rawaccel-6c037f92a350d8622f3739b1033c909912860d77.zip
Mostly working cap type in GUI
Diffstat (limited to 'grapher/Models/Options/Cap/CapOptions.cs')
-rw-r--r--grapher/Models/Options/Cap/CapOptions.cs107
1 files changed, 83 insertions, 24 deletions
diff --git a/grapher/Models/Options/Cap/CapOptions.cs b/grapher/Models/Options/Cap/CapOptions.cs
index 2fe44b0..e959dee 100644
--- a/grapher/Models/Options/Cap/CapOptions.cs
+++ b/grapher/Models/Options/Cap/CapOptions.cs
@@ -21,6 +21,11 @@ namespace grapher.Models.Options.Cap
In = capIn;
Out = capOut;
Slope = slope;
+
+ ShouldShow = true;
+ TopElement = Slope;
+ BottomElement = In;
+ CapTypeOptions.OptionsDropdown.SelectedIndexChanged += OnCapTypeDropdownSelectedItemChanged;
}
public CapTypeOptions CapTypeOptions { get; }
@@ -45,17 +50,16 @@ namespace grapher.Models.Options.Cap
public override int Top
{
- get => CapTypeOptions.Top;
+ get => TopElement.Top;
set
{
- CapTypeOptions.Top = value;
- Layout();
+ Layout(value);
}
}
public override int Height
{
- get => BottomElement.Top + BottomElement.Height - CapTypeOptions.Top;
+ get => BottomElement.Top + BottomElement.Height - TopElement.Top;
}
public override int Width
@@ -73,45 +77,100 @@ namespace grapher.Models.Options.Cap
public override bool Visible
{
- get => CapTypeOptions.Visible;
+ get => ShouldShow;
+ }
+
+ private bool ShouldShow { get; set; }
+
+ private IOption BottomElement { get; set; }
+
+ private IOption TopElement { get; set; }
+
+ public override void AlignActiveValues()
+ {
+ Slope.AlignActiveValues();
+ CapTypeOptions.AlignActiveValues();
+ In.AlignActiveValues();
+ Out.AlignActiveValues();
+ }
+
+ public override void Show(string name)
+ {
+ ShouldShow = true;
+ Layout(Top, name);
}
- private Option BottomElement { get; set; }
+ public override void Hide()
+ {
+ ShouldShow = false;
+ CapTypeOptions.Hide();
+ Slope.Hide();
+ In.Hide();
+ Out.Hide();
+ }
- public void Layout()
+ public void SetActiveValues(
+ double scale,
+ double inCap,
+ double outCap,
+ ClassicCapMode capMode)
{
- Layout(CapTypeOptions.Top + CapTypeOptions.Height + Constants.OptionVerticalSeperation);
+ Slope.SetActiveValue(scale);
+ In.SetActiveValue(inCap);
+ Out.SetActiveValue(outCap);
+ CapTypeOptions.SetActiveValue(capMode);
}
- private void Layout(int top)
+ private void Layout(int top, string name = null)
{
switch (CapTypeOptions.SelectedCapType)
{
case CapType.Input:
- Slope.Show();
- In.Show();
- Out.Hide();
+ if (ShouldShow)
+ {
+ Slope.Show();
+ CapTypeOptions.Show(name);
+ In.Show();
+ Out.Hide();
+ }
Slope.Top = top;
- In.SnapTo(Slope);
+ CapTypeOptions.SnapTo(Slope);
+ In.SnapTo(CapTypeOptions);
+
+ TopElement = CapTypeOptions;
BottomElement = In;
break;
case CapType.Output:
- Slope.Show();
- In.Hide();
- Out.Show();
+ if (ShouldShow)
+ {
+ Slope.Show();
+ CapTypeOptions.Show(name);
+ In.Hide();
+ Out.Show();
+ }
Slope.Top = top;
- In.SnapTo(Slope);
- BottomElement = In;
+ CapTypeOptions.SnapTo(Slope);
+ Out.SnapTo(CapTypeOptions);
+
+ TopElement = CapTypeOptions;
+ BottomElement = Out;
break;
case CapType.Both:
- Slope.Hide();
- In.Show();
- Out.Show();
-
- In.Top = top;
+ if (ShouldShow)
+ {
+ CapTypeOptions.Show(name);
+ Slope.Hide();
+ In.Show();
+ Out.Show();
+ }
+
+ CapTypeOptions.Top = top;
+ In.SnapTo(CapTypeOptions);
Out.SnapTo(In);
+
+ TopElement = In;
BottomElement = Out;
break;
}
@@ -119,7 +178,7 @@ namespace grapher.Models.Options.Cap
private void OnCapTypeDropdownSelectedItemChanged(object sender, EventArgs e)
{
- Layout();
+ Layout(Top);
}
private void SetupCapTypeDropdown(ComboBox capTypeDropDown)