Extract button factory to shared instance

This commit is contained in:
John Lewin 2017-08-03 18:33:14 -07:00
parent 2a50aa80a1
commit 0613f8c8b9
4 changed files with 33 additions and 44 deletions

View file

@ -1,14 +1,12 @@
using MatterHackers.Agg;
using System;
using MatterHackers.Agg;
using MatterHackers.Agg.UI;
using System;
using MatterHackers.Localizations;
namespace MatterHackers.MatterControl
{
public class EditableNumberDisplay : FlowLayoutWidget
{
protected ClickWidget clickableValueContainer;
protected Button setButton;
protected MHNumberEdit numberInputField;
protected TextWidget valueDisplay;
@ -16,7 +14,7 @@ namespace MatterHackers.MatterControl
public event EventHandler EditEnabled;
public EditableNumberDisplay(TextImageButtonFactory textImageButtonFactory, string startingValue, string largestPossibleValue)
public EditableNumberDisplay(string startingValue, string largestPossibleValue)
: base(Agg.UI.FlowDirection.LeftToRight)
{
this.Margin = new BorderDouble(3, 0);
@ -61,11 +59,6 @@ namespace MatterHackers.MatterControl
// TODO: This hack needs a unit test and then pass and then remove this line.
this.MinimumSize = new VectorMath.Vector2(0, numberInputField.Height);
setButton = textImageButtonFactory.Generate("SET".Localize());
setButton.VAnchor = VAnchor.ParentCenter;
setButton.Margin = new BorderDouble(left: 6);
setButton.Visible = false;
numberInputField.ActuallNumberEdit.EnterPressed += new KeyEventHandler(ActuallNumberEdit_EnterPressed);
numberInputField.KeyDown += (sender, e) =>
@ -74,15 +67,11 @@ namespace MatterHackers.MatterControl
{
clickableValueContainer.Visible = true;
numberInputField.Visible = false;
setButton.Visible = false;
}
};
setButton.Click += setButton_Click;
this.AddChild(clickableValueContainer);
this.AddChild(numberInputField);
this.AddChild(setButton);
}
private void editField_Click(object sender, EventArgs mouseEvent)
@ -102,24 +91,17 @@ namespace MatterHackers.MatterControl
numberInputField.ActuallNumberEdit.InternalNumberEdit.Focus();
numberInputField.ActuallNumberEdit.InternalNumberEdit.SelectAll();
setButton.Visible = true;
OnEditEnabled();
}
public void OnEditEnabled()
{
if (EditEnabled != null)
{
EditEnabled(this, null);
}
EditEnabled?.Invoke(this, null);
}
public void OnEditComplete()
{
if (EditComplete != null)
{
EditComplete(this, null);
}
EditComplete?.Invoke(this, null);
}
private void setButton_Click(object sender, EventArgs mouseEvent)
@ -137,13 +119,11 @@ namespace MatterHackers.MatterControl
valueDisplay.Text = displayString;
clickableValueContainer.Visible = true;
numberInputField.Visible = false;
setButton.Visible = false;
}
public double GetValue()
{
double targetTemp = numberInputField.ActuallNumberEdit.Value;
return targetTemp;
return numberInputField.ActuallNumberEdit.Value;
}
}
}