public override void Initialize(int tabIndex) { childFields = new List <Vector2Field>(); var column = new FlowLayoutWidget(FlowDirection.TopToBottom) { Margin = new BorderDouble(20, 0, 0, 0), HAnchor = HAnchor.Stretch, VAnchor = VAnchor.Fit, }; this.Content = column; int.TryParse(settingsContext.GetValue(SettingsKey.extruder_count), out int extruderCount); // If extruders_share_temperature is enabled, override the extruder count if (settingsContext.GetValue(SettingsKey.extruders_share_temperature) == "1") { extruderCount = 1; } for (int i = 0; i < extruderCount; i++) { var row = new FlowLayoutWidget() { HAnchor = HAnchor.Fit | HAnchor.Right, VAnchor = VAnchor.Fit, MinimumSize = new Vector2(0, 28) }; column.AddChild(row); var labelWidget = SettingsRow.CreateSettingsLabel($"Nozzle {i + 1}", "", textColor); labelWidget.Name = $"Nozzle {i}"; labelWidget.Margin = new BorderDouble(right: 60); row.AddChild(labelWidget); var field = new Vector2Field(); field.Initialize(tabIndex++); field.Content.Margin = new BorderDouble(right: 55); field.Content.VAnchor = VAnchor.Center; field.ValueChanged += (s, e) => { if (e.UserInitiated) { // Stuff multiple CSV values into single text field this.SetValue( string.Join(",", this.childFields.Select(f => f.Value.Replace(",", "x")).ToArray()), true); } }; row.AddChild(field.Content); childFields.Add(field); } base.Initialize(tabIndex); }
private static FlowLayoutWidget CreateSettingsColumn(string labelText, string toolTipText = null) { var theme = AppContext.Theme; var column = new FlowLayoutWidget(FlowDirection.TopToBottom) { HAnchor = HAnchor.Stretch, Padding = new BorderDouble(9, 5, 5, 5), // Use hard-coded 9 pixel left margin to match SettingsRow ToolTipText = toolTipText }; var label = SettingsRow.CreateSettingsLabel(labelText, toolTipText, theme.TextColor); label.VAnchor = VAnchor.Absolute; label.HAnchor = HAnchor.Left; column.AddChild(label); return(column); }