summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Palecki <[email protected]>2020-07-29 20:10:18 -0700
committerJacob Palecki <[email protected]>2020-07-29 20:10:18 -0700
commit769deb7d9f8fca973432e74d2a6fac8697091fc2 (patch)
tree61b177a86bdea5d514dabc088d8cabf587398d56
parentSeparate classes into files, add Field class for text box state (diff)
downloadrawaccel-769deb7d9f8fca973432e74d2a6fac8697091fc2.tar.xz
rawaccel-769deb7d9f8fca973432e74d2a6fac8697091fc2.zip
All single-value boxes use fields
-rw-r--r--grapher/Field.cs58
-rw-r--r--grapher/Form1.Designer.cs4
-rw-r--r--grapher/Form1.cs56
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
}
}