This commit is contained in:
John Lewin 2018-06-18 13:10:53 -07:00
parent 88d913ec74
commit e56fe12c25
2 changed files with 85 additions and 77 deletions

View file

@ -83,7 +83,6 @@ namespace MatterHackers.MatterControl.EeProm
private EventHandler unregisterEvents;
private TextImageButtonFactory textImageButtonFactory = new TextImageButtonFactory();
private double maxWidthOfLeftStuff = 0;
private List<GuiWidget> leftStuffToSize = new List<GuiWidget>();
@ -245,10 +244,14 @@ namespace MatterHackers.MatterControl.EeProm
private GuiWidget CreateMHNumEdit(ref MHNumberEdit numberEditToCreate)
{
numberEditToCreate = new MHNumberEdit(0, pixelWidth: 80, allowNegatives: true, allowDecimals: true);
numberEditToCreate.SelectAllOnFocus = true;
numberEditToCreate.VAnchor = Agg.UI.VAnchor.Center;
numberEditToCreate.Margin = new BorderDouble(3, 0);
numberEditToCreate = new MHNumberEdit(0, pixelWidth: 80, allowNegatives: true, allowDecimals: true)
{
SelectAllOnFocus = true,
VAnchor = VAnchor.Center,
Margin = new BorderDouble(3, 0),
TabIndex = GetNextTabIndex()
};
return numberEditToCreate;
}
@ -279,11 +282,15 @@ namespace MatterHackers.MatterControl.EeProm
private GuiWidget CreateTextField(string label)
{
GuiWidget textWidget = new TextWidget(label, textColor: ActiveTheme.Instance.PrimaryTextColor);
textWidget.VAnchor = VAnchor.Center;
textWidget.HAnchor = HAnchor.Right;
GuiWidget container = new GuiWidget(textWidget.Height, 24);
var textWidget = new TextWidget(label, textColor: ActiveTheme.Instance.PrimaryTextColor);
{
VAnchor = VAnchor.Center,
HAnchor = HAnchor.Right
};
var container = new GuiWidget(textWidget.Height, 24);
container.AddChild(textWidget);
return container;
}
@ -293,48 +300,43 @@ namespace MatterHackers.MatterControl.EeProm
string field3Label, ref MHNumberEdit field3,
string field4Label, ref MHNumberEdit field4)
{
FlowLayoutWidget row = new FlowLayoutWidget();
row.Margin = new BorderDouble(3);
row.HAnchor = Agg.UI.HAnchor.Stretch;
var row = new FlowLayoutWidget
{
Margin = 3,
HAnchor = HAnchor.Stretch
};
TextWidget labelWidget = new TextWidget(label, textColor: ActiveTheme.Instance.PrimaryTextColor);
labelWidget.VAnchor = VAnchor.Center;
var labelWidget = new TextWidget(label, textColor: ActiveTheme.Instance.PrimaryTextColor);
maxWidthOfLeftStuff = Math.Max(maxWidthOfLeftStuff, labelWidget.Width);
GuiWidget holder = new GuiWidget(labelWidget.Width, labelWidget.Height);
holder.Margin = new BorderDouble(3, 0);
var holder = new GuiWidget(labelWidget.Width, labelWidget.Height)
{
Margin = new BorderDouble(3, 0),
VAnchor = VAnchor.Fit | VAnchor.Center
};
holder.AddChild(labelWidget);
leftStuffToSize.Add(holder);
row.AddChild(holder);
{
row.AddChild(CreateTextField(field1Label));
GuiWidget nextTabIndex = CreateMHNumEdit(ref field1);
nextTabIndex.TabIndex = GetNextTabIndex();
row.AddChild(nextTabIndex);
}
row.AddChild(CreateTextField(field1Label));
row.AddChild(CreateMHNumEdit(ref field1));
if (field2Label != null)
{
row.AddChild(CreateTextField(field2Label));
GuiWidget nextTabIndex = CreateMHNumEdit(ref field2);
nextTabIndex.TabIndex = GetNextTabIndex();
row.AddChild(nextTabIndex);
row.AddChild(CreateMHNumEdit(ref field2));
}
if (field3Label != null)
{
row.AddChild(CreateTextField(field3Label));
GuiWidget nextTabIndex = CreateMHNumEdit(ref field3);
nextTabIndex.TabIndex = GetNextTabIndex();
row.AddChild(nextTabIndex);
row.AddChild(CreateMHNumEdit(ref field3));
}
if (field4Label != null)
{
row.AddChild(CreateTextField(field4Label));
GuiWidget nextTabIndex = CreateMHNumEdit(ref field4);
nextTabIndex.TabIndex = GetNextTabIndex();
row.AddChild(nextTabIndex);
row.AddChild(CreateMHNumEdit(ref field4));
}
return row;
@ -348,7 +350,6 @@ namespace MatterHackers.MatterControl.EeProm
public override void OnClosed(ClosedEventArgs e)
{
unregisterEvents?.Invoke(this, null);
base.OnClosed(e);
}

View file

@ -85,49 +85,53 @@ namespace MatterHackers.MatterControl.EeProm
currentEePromSettings = new EePromRepetierStorage();
FlowLayoutWidget topToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom);
topToBottom.VAnchor = Agg.UI.VAnchor.Stretch;
topToBottom.HAnchor = Agg.UI.HAnchor.Stretch;
topToBottom.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor;
topToBottom.Padding = new BorderDouble(3, 0);
var topToBottom = contentRow;
var row = new FlowLayoutWidget
{
HAnchor = HAnchor.Stretch,
BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor
};
FlowLayoutWidget row = new FlowLayoutWidget();
row.HAnchor = Agg.UI.HAnchor.Stretch;
row.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor;
GuiWidget descriptionWidget = AddDescription("Description".Localize());
descriptionWidget.Margin = new BorderDouble(left: 3);
row.AddChild(descriptionWidget);
CreateSpacer(row);
GuiWidget valueText = new TextWidget("Value".Localize(), textColor: ActiveTheme.Instance.PrimaryTextColor);
valueText.VAnchor = Agg.UI.VAnchor.Center;
valueText.Margin = new BorderDouble(left: 5, right: 60);
row.AddChild(valueText);
row.AddChild(new TextWidget("Value".Localize(), textColor: ActiveTheme.Instance.PrimaryTextColor)
{
VAnchor = VAnchor.Center,
Margin = new BorderDouble(left: 5, right: 60)
});
topToBottom.AddChild(row);
{
ScrollableWidget settingsAreaScrollBox = new ScrollableWidget(true);
var settingsAreaScrollBox = new ScrollableWidget(true);
settingsAreaScrollBox.ScrollArea.HAnchor |= HAnchor.Stretch;
settingsAreaScrollBox.AnchorAll();
settingsAreaScrollBox.BackgroundColor = ActiveTheme.Instance.SecondaryBackgroundColor;
topToBottom.AddChild(settingsAreaScrollBox);
settingsColmun = new FlowLayoutWidget(FlowDirection.TopToBottom);
settingsColmun.HAnchor = HAnchor.MaxFitOrStretch;
settingsColmun = new FlowLayoutWidget(FlowDirection.TopToBottom)
{
HAnchor = HAnchor.MaxFitOrStretch
};
settingsAreaScrollBox.AddChild(settingsColmun);
}
FlowLayoutWidget buttonBar = new FlowLayoutWidget();
buttonBar.HAnchor = Agg.UI.HAnchor.MaxFitOrStretch;
buttonBar.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor;
var buttonBar = new FlowLayoutWidget()
{
HAnchor = HAnchor.MaxFitOrStretch,
BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor
};
// put in the save button
{
Button buttonSave = textImageButtonFactory.Generate("Save To EEPROM".Localize());
buttonSave.Margin = new BorderDouble(0, 3);
buttonSave.Click += (sender, e) =>
buttonSave.Click += (s, e) =>
{
UiThread.RunOnIdle(() =>
{
@ -147,7 +151,7 @@ namespace MatterHackers.MatterControl.EeProm
{
Button buttonImport = textImageButtonFactory.Generate("Import".Localize() + "...");
buttonImport.Margin = new BorderDouble(0, 3);
buttonImport.Click += (sender, e) =>
buttonImport.Click += (s, e) =>
{
UiThread.RunOnIdle(() =>
{
@ -174,7 +178,7 @@ namespace MatterHackers.MatterControl.EeProm
{
Button buttonExport = textImageButtonFactory.Generate("Export".Localize() + "...");
buttonExport.Margin = new BorderDouble(0, 3);
buttonExport.Click += (sender, e) =>
buttonExport.Click += (s, e) =>
{
UiThread.RunOnIdle(() =>
{
@ -201,7 +205,7 @@ namespace MatterHackers.MatterControl.EeProm
{
Button buttonCancel = textImageButtonFactory.Generate("Close".Localize());
buttonCancel.Margin = new BorderDouble(10, 3, 0, 3);
buttonCancel.Click += (sender, e) =>
buttonCancel.Click += (s, e) =>
{
UiThread.RunOnIdle(() =>
{
@ -215,8 +219,6 @@ namespace MatterHackers.MatterControl.EeProm
topToBottom.AddChild(buttonBar);
this.AddChild(topToBottom);
currentEePromSettings.Clear();
printerConnection.CommunicationUnconditionalFromPrinter.RegisterEvent(currentEePromSettings.Add, ref unregisterEvents);
currentEePromSettings.eventAdded += NewSettingReadFromPrinter;
@ -243,9 +245,10 @@ namespace MatterHackers.MatterControl.EeProm
private static void CreateSpacer(FlowLayoutWidget buttonBar)
{
GuiWidget spacer = new GuiWidget(1, 1);
spacer.HAnchor = Agg.UI.HAnchor.Stretch;
buttonBar.AddChild(spacer);
buttonBar.AddChild(new GuiWidget(1, 1)
{
HAnchor = HAnchor.Stretch
});
}
public override void OnClosed(ClosedEventArgs e)
@ -257,8 +260,7 @@ namespace MatterHackers.MatterControl.EeProm
bool waitingForUiUpdate = false;
private void NewSettingReadFromPrinter(object sender, EventArgs e)
{
EePromRepetierParameter newSetting = e as EePromRepetierParameter;
if (newSetting != null)
if (e is EePromRepetierParameter newSetting)
{
if (!waitingForUiUpdate)
{
@ -272,10 +274,10 @@ namespace MatterHackers.MatterControl.EeProm
private void RebuildUi()
{
List<EePromRepetierParameter> tempList = new List<EePromRepetierParameter>();
var tempList = new List<EePromRepetierParameter>();
lock (currentEePromSettings.eePromSettingsList)
{
foreach (KeyValuePair<int, EePromRepetierParameter> keyValue in currentEePromSettings.eePromSettingsList)
foreach (var keyValue in currentEePromSettings.eePromSettingsList)
{
tempList.Add(keyValue.Value);
}
@ -287,10 +289,13 @@ namespace MatterHackers.MatterControl.EeProm
{
if (newSetting != null)
{
FlowLayoutWidget row = new FlowLayoutWidget();
row.HAnchor = Agg.UI.HAnchor.MaxFitOrStretch;
var row = new FlowLayoutWidget
{
HAnchor = HAnchor.MaxFitOrStretch,
Padding = new BorderDouble(5, 0)
};
row.AddChild(AddDescription(newSetting.Description));
row.Padding = new BorderDouble(5, 0);
if ((settingsColmun.Children.Count % 2) == 1)
{
row.BackgroundColor = new Color(0, 0, 0, 30);
@ -298,13 +303,14 @@ namespace MatterHackers.MatterControl.EeProm
CreateSpacer(row);
double currentValue;
double.TryParse(newSetting.Value, out currentValue);
MHNumberEdit valueEdit = new MHNumberEdit(currentValue, pixelWidth: 80 * GuiWidget.DeviceScale, allowNegatives: true, allowDecimals: true);
valueEdit.SelectAllOnFocus = true;
valueEdit.TabIndex = currentTabIndex++;
valueEdit.VAnchor = Agg.UI.VAnchor.Center;
valueEdit.ActuallNumberEdit.EditComplete += (sender, e) =>
double.TryParse(newSetting.Value, out double currentValue);
var valueEdit = new MHNumberEdit(currentValue, pixelWidth: 80 * GuiWidget.DeviceScale, allowNegatives: true, allowDecimals: true)
{
SelectAllOnFocus = true,
TabIndex = currentTabIndex++,
VAnchor = VAnchor.Center
};
valueEdit.ActuallNumberEdit.EditComplete += (s, e) =>
{
newSetting.Value = valueEdit.ActuallNumberEdit.Value.ToString();
};
@ -318,10 +324,11 @@ namespace MatterHackers.MatterControl.EeProm
private GuiWidget AddDescription(string description)
{
GuiWidget holder = new GuiWidget(340, 40);
TextWidget textWidget = new TextWidget(description, textColor: ActiveTheme.Instance.PrimaryTextColor);
textWidget.VAnchor = Agg.UI.VAnchor.Center;
holder.AddChild(textWidget);
var holder = new GuiWidget(340, 40);
holder.AddChild(new TextWidget(description, textColor: ActiveTheme.Instance.PrimaryTextColor)
{
VAnchor = VAnchor.Center
});
return holder;
}