private FlowLayoutWidget GetMacroButtonContainer() { FlowLayoutWidget macroButtonContainer = new FlowLayoutWidget(); macroButtonContainer.Margin = new BorderDouble(3, 0); macroButtonContainer.Padding = new BorderDouble(3); if (ActiveSliceSettings.Instance?.Macros == null) { return(macroButtonContainer); } int buttonCount = 0; foreach (GCodeMacro macro in ActiveSliceSettings.Instance.Macros) { buttonCount++; Button macroButton = textImageButtonFactory.Generate(MacroControls.FixMacroName(macro.Name)); macroButton.Text = macro.GCode; macroButton.Margin = new BorderDouble(right: 5); macroButton.Click += (s, e) => SendCommandToPrinter(macroButton.Text); macroButtonContainer.AddChild(macroButton); } if (buttonCount == 0) { TextWidget noMacrosFound = new TextWidget(LocalizedString.Get("No macros are currently set up for this printer."), pointSize: 10); noMacrosFound.TextColor = ActiveTheme.Instance.PrimaryTextColor; macroButtonContainer.AddChild(noMacrosFound); } return(macroButtonContainer); }
public static SectionWidget CreateSection(PrinterConfig printer, ThemeConfig theme) { var widget = new MacroControls(printer, theme); var editButton = new IconButton(AggContext.StaticData.LoadIcon("icon_edit.png", 16, 16, theme.InvertIcons), theme); editButton.Click += (s, e) => { DialogWindow.Show(new MacroListPage(printer.Settings)); }; return(new SectionWidget( "Macros".Localize(), widget, theme, editButton)); }