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);
        }
Esempio n. 2
0
        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);
        }