diff options
Diffstat (limited to 'grapher/AccelOptions.cs')
| -rw-r--r-- | grapher/AccelOptions.cs | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/grapher/AccelOptions.cs b/grapher/AccelOptions.cs new file mode 100644 index 0000000..3aa6ef6 --- /dev/null +++ b/grapher/AccelOptions.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace grapher +{ + public class AccelOptions + { + public const string Off = "Off"; + public const string Linear = "Linear"; + public const string Classic = "Classic"; + public const string Natural = "Natural"; + public const string Logarithmic = "Logarithmic"; + public const string Sigmoid = "Sigmoid"; + public const string Power = "Power"; + + /// <summary> + /// Holds mapping from acceleration type to identifying integer. + /// Must match order in tagged_union in rawaccel.hpp (which is 1-indexed, meaning 0 is off.) + /// </summary> + public static readonly Dictionary<string, int> TypeToIndex = new Dictionary<string, int> + { + { Off, 0 }, + { Linear, 1 }, + { Classic, 2 }, + { Natural, 3 }, + { Logarithmic, 4 }, + { Sigmoid, 5 }, + { Power, 6 }, + }; + + public AccelOptions(ComboBox accelDropdown) + { + AccelDropdown = accelDropdown; + AccelDropdown.Items.Clear(); + AccelDropdown.Items.AddRange(TypeToIndex.Keys.ToArray()); + } + + public ComboBox AccelDropdown { get; } + + public int AccelerationIndex { get; private set; } + + private void OnIndexChanged(object sender, EventArgs e) + { + var AccelerationType = AccelDropdown.SelectedItem.ToString(); + AccelerationIndex = TypeToIndex[AccelerationType]; + + /* + switch (AccelerationType) + { + case Linear: + LayoutLinear(); + default: + LayoutDefault(); + break; + } + */ + } + + private void LayoutDefault() + { + + } + } +} |