summaryrefslogtreecommitdiff
path: root/grapher/Models/Options/TextOption.cs
blob: 1f8034d661aa53d784739dc59c81e983127e85cc (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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace grapher.Models.Options
{
    public class TextOption : OptionBase
    {
        #region Constants

        public const string LUTLayoutExpandedText = "This mode is for experts only. Format: x1,y1;x2,y2;...xn,yn;";
        public const string LUTLayoutShortenedText = "Experts only.";

        #endregion Constants

        #region Constructors

        public TextOption(Label label)
        {
            Label = label;
            Label.AutoSize = true;
        }

        #endregion Constructors

        #region Properties

        private Label Label { get; }

        private string ExpandedText { get; set; }

        private string ShortenedText { get; set; }

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

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

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

        public override int Width
        {
            get
            {
                return Label.Width;
            }
            set
            {
                Label.MaximumSize = new System.Drawing.Size(value, 0);
            }
        }

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

        private bool ShouldShow
        {
            get; set;
        }

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

        public override void Show(string Name)
        {
            Label.Show();
            ShouldShow = true;
        }

        public void Expand()
        {
            Label.Text = ExpandedText;
        }

        public void Shorten()
        {
            Label.Text = ShortenedText;
        }

        public void SetText(string expandedText, string shortenedText)
        {
            ExpandedText = expandedText;
            ShortenedText = shortenedText;
        }

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

        #endregion Properties
    }
}