summaryrefslogtreecommitdiff
path: root/grapher/AccelOptions.cs
blob: 3aa6ef6f667e3b7211b5939b16124d34501f79aa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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()
        {

        }
    }
}