diff options
| author | Jacob Palecki <[email protected]> | 2020-07-29 20:10:18 -0700 |
|---|---|---|
| committer | Jacob Palecki <[email protected]> | 2020-07-29 20:10:18 -0700 |
| commit | 769deb7d9f8fca973432e74d2a6fac8697091fc2 (patch) | |
| tree | 61b177a86bdea5d514dabc088d8cabf587398d56 | |
| parent | Separate classes into files, add Field class for text box state (diff) | |
| download | rawaccel-769deb7d9f8fca973432e74d2a6fac8697091fc2.tar.xz rawaccel-769deb7d9f8fca973432e74d2a6fac8697091fc2.zip | |
All single-value boxes use fields
| -rw-r--r-- | grapher/Field.cs | 58 | ||||
| -rw-r--r-- | grapher/Form1.Designer.cs | 4 | ||||
| -rw-r--r-- | grapher/Form1.cs | 56 |
3 files changed, 56 insertions, 62 deletions
diff --git a/grapher/Field.cs b/grapher/Field.cs index 641bb2a..4be87ba 100644 --- a/grapher/Field.cs +++ b/grapher/Field.cs @@ -26,12 +26,13 @@ namespace grapher #region Constructors - public Field(string defaultText, TextBox box, double defaultData) + public Field(string defaultText, TextBox box, Form containingForm, double defaultData) { DefaultText = defaultText; Box = box; Data = defaultData; State = FieldState.Undefined; + ContainingForm = containingForm; box.KeyDown += KeyDown; SetToDefault(); @@ -43,6 +44,8 @@ namespace grapher TextBox Box { get; } + Form ContainingForm { get; } + public double Data { get; private set; } public string DefaultText { get; } @@ -57,11 +60,13 @@ namespace grapher { if (State != FieldState.Default) { - Box.BackColor = Color.AntiqueWhite; + Box.BackColor = Color.White; Box.ForeColor = Color.Gray; - Box.Text = DefaultText; State = FieldState.Default; } + + Box.Text = DefaultText; + ContainingForm.ActiveControl = null; } public void SetToTyping() @@ -72,16 +77,20 @@ namespace grapher Box.ForeColor = Color.Black; State = FieldState.Typing; } + + Box.Text = string.Empty; } public void SetToEntered() { if (State != FieldState.Entered) { - Box.BackColor = Color.White; + Box.BackColor = Color.AntiqueWhite; Box.ForeColor = Color.DarkGray; State = FieldState.Entered; } + + ContainingForm.ActiveControl = null; } public void SetToUnavailable() @@ -96,33 +105,54 @@ namespace grapher public void KeyDown(object sender, KeyEventArgs e) { - if (TryHandleWithEnter(e, sender, out double data)) + switch(State) { - Data = data; + case FieldState.Default: + if (e.KeyCode == Keys.Enter) + { + SetToDefault(); + } + else + { + SetToTyping(); + } + break; + + case FieldState.Entered: + if (e.KeyCode != Keys.Enter) + { + SetToTyping(); + } + break; + case FieldState.Typing: + HandleTyping(sender, e); + break; + case FieldState.Unavailable: + Box.Text = string.Empty; + break; + default: + break; } } - private bool TryHandleWithEnter(KeyEventArgs e, object sender, out double data) + private void HandleTyping(object sender, KeyEventArgs e) { - bool validEntry = false; - data = 0.0; - if (e.KeyCode == Keys.Enter) { try { - data = Convert.ToDouble(((TextBox)sender).Text); - validEntry = true; + Data = Convert.ToDouble(((TextBox)sender).Text); } catch { + Box.Text = Data.ToString(); } e.Handled = true; e.SuppressKeyPress = true; - } - return validEntry; + SetToEntered(); + } } #endregion Methods diff --git a/grapher/Form1.Designer.cs b/grapher/Form1.Designer.cs index 978f3da..fcfa239 100644 --- a/grapher/Form1.Designer.cs +++ b/grapher/Form1.Designer.cs @@ -113,7 +113,6 @@ this.rotationBox.Name = "rotationBox"; this.rotationBox.Size = new System.Drawing.Size(51, 20); this.rotationBox.TabIndex = 5; - this.rotationBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.rotationBox_KeyDown); // // label2 // @@ -186,7 +185,6 @@ this.limitBox.Name = "limitBox"; this.limitBox.Size = new System.Drawing.Size(51, 20); this.limitBox.TabIndex = 15; - this.limitBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.limitBox_KeyDown); // // label6 // @@ -203,7 +201,6 @@ this.midpointBox.Name = "midpointBox"; this.midpointBox.Size = new System.Drawing.Size(51, 20); this.midpointBox.TabIndex = 17; - this.midpointBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.midpointBox_KeyDown); // // label7 // @@ -220,7 +217,6 @@ this.offsetBox.Name = "offsetBox"; this.offsetBox.Size = new System.Drawing.Size(51, 20); this.offsetBox.TabIndex = 19; - this.offsetBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.offsetBox_KeyDown); // // label8 // diff --git a/grapher/Form1.cs b/grapher/Form1.cs index fbf5dfb..ef0dd3a 100644 --- a/grapher/Form1.cs +++ b/grapher/Form1.cs @@ -21,13 +21,13 @@ namespace grapher ManagedAcceleration = new ManagedAccel(5, 0, 0.3, 1.25, 15); AccelerationType = 5; Sensitivity = new VectorXY(1); - Rotation = 0; + Rotation = new Field("0.0", rotationBox, this, 0); Weight = new VectorXY(1); Cap = new VectorXY(0); - Offset = 0; - Acceleration = new Field("0.0", this.accelerationBox, 0); - LimitOrExponent = 1.01; - Midpoint = 0; + Offset = new Field("0.0", offsetBox, this, 0); + Acceleration = new Field("0.0", accelerationBox, this, 0); + LimitOrExponent = new Field("2.0", limitBox, this, 2); + Midpoint = new Field("0.0", midpointBox, this, 0); UpdateGraph(); @@ -61,19 +61,19 @@ namespace grapher private VectorXY Sensitivity { get; set; } - private double Rotation { get; set; } + private Field Rotation { get; set; } private VectorXY Weight { get; set; } private VectorXY Cap { get; set; } - private double Offset { get; set; } + private Field Offset { get; set; } private Field Acceleration { get; set; } - private double LimitOrExponent { get; set; } + private Field LimitOrExponent { get; set; } - private double Midpoint { get; set; } + private Field Midpoint { get; set; } #endregion Properties @@ -157,10 +157,10 @@ namespace grapher Weight.Y, Cap.X, Cap.Y, - Offset, + Offset.Data, Acceleration.Data, - LimitOrExponent, - Midpoint); + LimitOrExponent.Data, + Midpoint.Data); ManagedAcceleration.WriteToDriver(); UpdateGraph(); } @@ -173,14 +173,6 @@ namespace grapher } } - private void rotationBox_KeyDown(object sender, KeyEventArgs e) - { - if (TryHandleWithEnter(e, sender, out double data)) - { - Rotation = data; - } - } - private void capBox_KeyDown(object sender, KeyEventArgs e) { if (TryHandleWithEnter(e, sender, out double data)) @@ -189,30 +181,6 @@ namespace grapher } } - private void offsetBox_KeyDown(object sender, KeyEventArgs e) - { - if (TryHandleWithEnter(e, sender, out double data)) - { - Offset = data; - } - } - - private void limitBox_KeyDown(object sender, KeyEventArgs e) - { - if (TryHandleWithEnter(e, sender, out double data)) - { - LimitOrExponent = data; - } - } - - private void midpointBox_KeyDown(object sender, KeyEventArgs e) - { - if (TryHandleWithEnter(e, sender, out double data)) - { - Midpoint = data; - } - } - #endregion Methods } } |