summaryrefslogtreecommitdiff
path: root/grapher/Models/Options/LUT/LUTPanelOptions.cs
blob: a6b894bbeafa975ff6fd337e2c40553a8d8bf315 (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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace grapher.Models.Options.LUT
{
    public class LUTPanelOptions : OptionBase
    {
        public const string LUTPanelTitle = "LookupTable Points";
        public const string ApplyAsSensTitle = "Apply as sensitivity";
        public const string ApplyAsVelocityTitle = "Apply as velocity";
        public const int TitlePadding = 5;
        public const int PanelHeight = 40;

        public LUTPanelOptions(Panel panel)
        {
            Panel = panel;
            Panel.Height = PanelHeight;
            Panel.Paint += Panel_Paint;

            Title = new Label();
            Title.Text = LUTPanelTitle;
            ApplyAsSens = new CheckBox();
            ApplyAsSens.Text = ApplyAsSensTitle;
            ApplyAsVelocity = new CheckBox();
            ApplyAsVelocity.Text = ApplyAsVelocityTitle;

            Panel.Controls.Add(Title);
            Title.Left = TitlePadding;
            Title.Top = TitlePadding;
        }

        public Panel Panel
        {
            get;
        }

        public Label Title
        {
            get;
        }

        public CheckBox ApplyAsSens
        {
            get;
        }

        public CheckBox ApplyAsVelocity
        {
            get;
        }

        public override bool Visible
        {
            get
            {
                return Panel.Visible || ShouldShow;
            }
        }

        public override int Top
        {
            get
            {
                return Panel.Top;
            }
            set
            {
                Panel.Top = value;
            }
        }

        public override int Height
        {
            get
            {
                return Panel.Height;
            }
        }

        public override int Left
        {
            get
            {
                return Panel.Left;
            }
            set
            {
                Panel.Left = value;
            }
        }

        public override int Width
        {
            get
            {
                return Panel.Width;
            }
            set
            {
                Panel.Width = value;
            }
        }

        private bool ShouldShow { get; set; }

        public override void Hide()
        {
            Panel.Hide();
            ShouldShow = false;
        }

        public override void Show(string name)
        {
            Panel.Show();
            ShouldShow = true;
        }

        public override void AlignActiveValues()
        {
            // Nothing to do here.
        }

        private void Panel_Paint(object sender, PaintEventArgs e)
        {
            Color col = Color.DarkGray;
            ButtonBorderStyle bbs = ButtonBorderStyle.Dashed;
            int thickness = 2;
            ControlPaint.DrawBorder(e.Graphics, Panel.ClientRectangle, col, thickness, bbs, col, thickness, bbs, col, thickness, bbs, col, thickness, bbs);
        }
    }
}