diff options
Diffstat (limited to 'grapher/Models')
| -rw-r--r-- | grapher/Models/AccelGUI.cs | 4 | ||||
| -rw-r--r-- | grapher/Models/Options/AccelOptionSet.cs | 2 | ||||
| -rw-r--r-- | grapher/Models/Options/ApplyOptions.cs | 15 | ||||
| -rw-r--r-- | grapher/Models/Options/CheckBoxOption.cs | 3 | ||||
| -rw-r--r-- | grapher/Models/Options/LockableOption.cs | 89 |
5 files changed, 104 insertions, 9 deletions
diff --git a/grapher/Models/AccelGUI.cs b/grapher/Models/AccelGUI.cs index 6ad57d9..801fd8d 100644 --- a/grapher/Models/AccelGUI.cs +++ b/grapher/Models/AccelGUI.cs @@ -113,12 +113,12 @@ namespace grapher var settings = new Profile(); settings.rotation = ApplyOptions.Rotation.Field.Data; - settings.sensitivity = ApplyOptions.Sensitivity.Fields.X; + settings.sensitivity = ApplyOptions.Sensitivity.Field.Data; // TODO - separate sensitivity fields, add new label for ratio settings.yxSensRatio = ApplyOptions.Sensitivity.Fields.Y; settings.combineMagnitudes = ApplyOptions.IsWhole; - ApplyOptions.SetArgs(ref settings.argsX, ref settings.argsY); + ApplyOptions.SetArgsFromActiveValues(ref settings.argsX, ref settings.argsY); var (domWeights, lpNorm) = ApplyOptions.Directionality.GetDomainArgs(); settings.domainXY = domWeights; diff --git a/grapher/Models/Options/AccelOptionSet.cs b/grapher/Models/Options/AccelOptionSet.cs index 75eb017..3451402 100644 --- a/grapher/Models/Options/AccelOptionSet.cs +++ b/grapher/Models/Options/AccelOptionSet.cs @@ -99,7 +99,7 @@ namespace grapher.Models.Options Options.Top = TopAnchor; } - public void SetArgs(ref AccelArgs args) + public void SetArgsFromActiveValues(ref AccelArgs args) { Options.SetArgs(ref args); } diff --git a/grapher/Models/Options/ApplyOptions.cs b/grapher/Models/Options/ApplyOptions.cs index 0d87943..5c3494c 100644 --- a/grapher/Models/Options/ApplyOptions.cs +++ b/grapher/Models/Options/ApplyOptions.cs @@ -65,7 +65,9 @@ namespace grapher.Models.Options public DirectionalityOptions Directionality { get; } - public OptionXY Sensitivity { get; } + public Option Sensitivity { get; } + + public Option YToXRatio { get; } public Option Rotation { get; } @@ -81,23 +83,24 @@ namespace grapher.Models.Options #region Methods - public void SetArgs(ref AccelArgs argsX, ref AccelArgs argsY) + public void SetArgsFromActiveValues(ref AccelArgs argsX, ref AccelArgs argsY) { - OptionSetX.SetArgs(ref argsX); + OptionSetX.SetArgsFromActiveValues(ref argsX); if (ByComponentVectorXYLock.Checked) { - OptionSetX.SetArgs(ref argsY); + OptionSetX.SetArgsFromActiveValues(ref argsY); } else { - OptionSetY.SetArgs(ref argsY); + OptionSetY.SetArgsFromActiveValues(ref argsY); } } public void SetActiveValues(Profile settings) { - Sensitivity.SetActiveValues(settings.sensitivity, settings.yxSensRatio); + Sensitivity.SetActiveValue(settings.sensitivity); + YToXRatio.SetActiveValue(settings.yxSensRatio); Rotation.SetActiveValue(settings.rotation); WholeVectorCheckBox.Checked = settings.combineMagnitudes; diff --git a/grapher/Models/Options/CheckBoxOption.cs b/grapher/Models/Options/CheckBoxOption.cs index abf96d3..1a4245d 100644 --- a/grapher/Models/Options/CheckBoxOption.cs +++ b/grapher/Models/Options/CheckBoxOption.cs @@ -2,6 +2,9 @@ namespace grapher.Models.Options { + /// <summary> + /// This is an option type that is just a checkbox. + /// </summary> public class CheckBoxOption : OptionBase { public CheckBoxOption( diff --git a/grapher/Models/Options/LockableOption.cs b/grapher/Models/Options/LockableOption.cs new file mode 100644 index 0000000..bf77520 --- /dev/null +++ b/grapher/Models/Options/LockableOption.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace grapher.Models.Options +{ + /// <summary> + /// This is an option type that is a regular option with a checkbox that disables it. + /// </summary> + public class LockableOption : OptionBase + { + public LockableOption( + Option option, + CheckBox checkBox, + int lockedvalue) + { + Option = option; + LockBox = checkBox; + LockedValue = lockedvalue; + } + + public Option Option { get; } + + public CheckBox LockBox { get; } + + public int LockedValue { get; } + + public override int Left + { + get => Option.Left; + + set + { + Option.Left = value; + } + } + + public override int Top + { + get => Option.Top; + + set + { + Option.Top = value; + LockBox.Top = value; + } + } + + public override int Width + { + get => Option.Width; + + set + { + Option.Width = value; + } + } + + public override int Height + { + get => Option.Height; + } + + public override bool Visible + { + get => Option.Visible; + } + + public override void AlignActiveValues() + { + Option.AlignActiveValues(); + } + + public override void Hide() + { + Option.Hide(); + LockBox.Hide(); + } + + public override void Show(string Name) + { + Option.Show(Name); + LockBox.Show(); + } + } +} |