public PartPreviewMainWindow(PrintItemWrapper printItem, View3DWidget.AutoRotate autoRotate3DView, View3DWidget.OpenMode openMode = View3DWidget.OpenMode.Viewing) : base(750, 550) { UseOpenGL = true; string partPreviewTitle = LocalizedString.Get("MatterControl"); Title = string.Format("{0}: ", partPreviewTitle) + Path.GetFileName(printItem.Name); this.Name = "Part Preview Window"; partPreviewWidget = new PartPreviewContent(printItem, View3DWidget.WindowMode.StandAlone, autoRotate3DView, openMode); partPreviewWidget.Closed += (sender, e) => { Close(); }; #if __ANDROID__ TerminalWidget terminalWidget = new TerminalWidget(true); this.AddChild(new SoftKeyboardContentOffset(partPreviewWidget)); //mainContainer.Closed += (sender, e) => { Close(); }; #else this.AddChild(partPreviewWidget); #endif AddHandlers(); Width = 750; Height = 550; MinimumSize = new Vector2(400, 300); ShowAsSystemWindow(); }
public PartPreviewMainWindow(PrintItemWrapper printItem, View3DWidget.AutoRotate autoRotate3DView, View3DWidget.OpenMode openMode = View3DWidget.OpenMode.Viewing) : base(690, 340) { UseOpenGL = true; string partPreviewTitle = LocalizedString.Get("MatterControl"); Title = string.Format("{0}: ", partPreviewTitle) + Path.GetFileName(printItem.Name); partPreviewWidget = new PartPreviewContent(printItem, View3DWidget.WindowMode.StandAlone, autoRotate3DView, openMode); partPreviewWidget.Closed += (sender, e) => { Close(); }; #if __ANDROID__ TerminalWidget terminalWidget = new TerminalWidget(true); this.AddChild(new SoftKeyboardContentOffset(partPreviewWidget, SoftKeyboardContentOffset.AndroidKeyboardOffset)); //mainContainer.Closed += (sender, e) => { Close(); }; #else this.AddChild(partPreviewWidget); #endif AddHandlers(); Width = 640; Height = 480; MinimumSize = new Vector2(400, 300); ShowAsSystemWindow(); }
public EePromRepetierWindow() : base(540, 480) { AlwaysOnTopOfMain = true; BackgroundColor = ActiveTheme.Instance.SecondaryBackgroundColor; currentEePromSettings = new EePromRepetierStorage(); FlowLayoutWidget topToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom); topToBottom.VAnchor = Agg.UI.VAnchor.Max_FitToChildren_ParentHeight; topToBottom.HAnchor = Agg.UI.HAnchor.ParentLeftRight; topToBottom.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; topToBottom.Padding = new BorderDouble(3, 0); FlowLayoutWidget row = new FlowLayoutWidget(); row.HAnchor = Agg.UI.HAnchor.ParentLeftRight; row.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; GuiWidget descriptionWidget = AddDescription(LocalizedString.Get("Description")); descriptionWidget.Margin = new BorderDouble(left: 3); row.AddChild(descriptionWidget); CreateSpacer(row); GuiWidget valueText = new TextWidget(LocalizedString.Get("Value"), textColor: ActiveTheme.Instance.PrimaryTextColor); valueText.VAnchor = Agg.UI.VAnchor.ParentCenter; valueText.Margin = new BorderDouble(left: 5, right: 60); row.AddChild(valueText); topToBottom.AddChild(row); { ScrollableWidget settingsAreaScrollBox = new ScrollableWidget(true); settingsAreaScrollBox.ScrollArea.HAnchor |= HAnchor.ParentLeftRight; settingsAreaScrollBox.AnchorAll(); settingsAreaScrollBox.BackgroundColor = ActiveTheme.Instance.SecondaryBackgroundColor; topToBottom.AddChild(settingsAreaScrollBox); settingsColmun = new FlowLayoutWidget(FlowDirection.TopToBottom); settingsColmun.HAnchor = HAnchor.Max_FitToChildren_ParentWidth; settingsAreaScrollBox.AddChild(settingsColmun); } FlowLayoutWidget buttonBar = new FlowLayoutWidget(); buttonBar.HAnchor = Agg.UI.HAnchor.Max_FitToChildren_ParentWidth; buttonBar.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; buttonSave = textImageButtonFactory.Generate(LocalizedString.Get("Save To EEPROM")); buttonSave.Margin = new BorderDouble(0, 3); buttonBar.AddChild(buttonSave); CreateSpacer(buttonBar); buttonCancel = textImageButtonFactory.Generate(LocalizedString.Get("Cancel")); buttonCancel.Margin = new BorderDouble(3); buttonBar.AddChild(buttonCancel); topToBottom.AddChild(buttonBar); #if __ANDROID__ TerminalWidget terminalWidget = new TerminalWidget(true); this.AddChild(new SoftKeyboardContentOffset(topToBottom)); //topToBottom.Closed += (sender, e) => { Close(); }; #else this.AddChild(topToBottom); #endif translate(); ShowAsSystemWindow(); currentEePromSettings.Clear(); PrinterConnectionAndCommunication.Instance.CommunicationUnconditionalFromPrinter.RegisterEvent(currentEePromSettings.Add, ref unregisterEvents); currentEePromSettings.eventAdded += NewSettingReadFromPrinter; currentEePromSettings.AskPrinterForSettings(); #if SIMULATE_CONNECTION UiThread.RunOnIdle(AddSimulatedItems); #endif }
public EePromMarlinWindow() : base(700, 480) { AlwaysOnTopOfMain = true; Title = "Marlin Firmware EEPROM Settings".Localize(); currentEePromSettings = new EePromMarlinSettings(); currentEePromSettings.eventAdded += SetUiToPrinterSettings; FlowLayoutWidget mainContainer = new FlowLayoutWidget(FlowDirection.TopToBottom); mainContainer.VAnchor = Agg.UI.VAnchor.Max_FitToChildren_ParentHeight; mainContainer.HAnchor = Agg.UI.HAnchor.ParentLeftRight; mainContainer.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; mainContainer.Padding = new BorderDouble(3, 0); FlowLayoutWidget topToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom); topToBottom.VAnchor = Agg.UI.VAnchor.Max_FitToChildren_ParentHeight; topToBottom.HAnchor = Agg.UI.HAnchor.ParentLeftRight; topToBottom.BackgroundColor = ActiveTheme.Instance.SecondaryBackgroundColor; topToBottom.Padding = new BorderDouble(top: 3); // the top button bar { FlowLayoutWidget topButtonBar = new FlowLayoutWidget(); topButtonBar.HAnchor = Agg.UI.HAnchor.ParentLeftRight; topButtonBar.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; topButtonBar.Margin = new BorderDouble(0, 3); Button buttonSetToFactorySettings = textImageButtonFactory.Generate("Reset to Factory Defaults".Localize()); topButtonBar.AddChild(buttonSetToFactorySettings); buttonSetToFactorySettings.Click += (sender, e) => { currentEePromSettings.SetPrinterToFactorySettings(); currentEePromSettings.Update(); }; mainContainer.AddChild(topButtonBar); } topToBottom.AddChild(Create4FieldSet("Steps per mm:".Localize(), "X:", ref stepsPerMmX, "Y:", ref stepsPerMmY, "Z:", ref stepsPerMmZ, "E:", ref stepsPerMmE)); topToBottom.AddChild(Create4FieldSet("Maximum feedrates [mm/s]:".Localize(), "X:", ref maxFeedrateMmPerSX, "Y:", ref maxFeedrateMmPerSY, "Z:", ref maxFeedrateMmPerSZ, "E:", ref maxFeedrateMmPerSE)); topToBottom.AddChild(Create4FieldSet("Maximum Acceleration [mm/s²]:".Localize(), "X:", ref maxAccelerationMmPerSSqrdX, "Y:", ref maxAccelerationMmPerSSqrdY, "Z:", ref maxAccelerationMmPerSSqrdZ, "E:", ref maxAccelerationMmPerSSqrdE)); topToBottom.AddChild(CreateField("Acceleration:".Localize(), ref acceleration)); topToBottom.AddChild(CreateField("Retract Acceleration:".Localize(), ref retractAcceleration)); topToBottom.AddChild(Create3FieldSet("PID settings:".Localize(), "P:", ref pidP, "I:", ref pidI, "D:", ref pidD)); topToBottom.AddChild(Create3FieldSet("Homing Offset:".Localize(), "X:", ref homingOffsetX, "Y:", ref homingOffsetY, "Z:", ref homingOffsetZ)); topToBottom.AddChild(CreateField("Min feedrate [mm/s]:".Localize(), ref minFeedrate)); topToBottom.AddChild(CreateField("Min travel feedrate [mm/s]:".Localize(), ref minTravelFeedrate)); topToBottom.AddChild(CreateField("Minimum segment time [ms]:".Localize(), ref minSegmentTime)); topToBottom.AddChild(CreateField("Maximum X-Y jerk [mm/s]:".Localize(), ref maxXYJerk)); topToBottom.AddChild(CreateField("Maximum Z jerk [mm/s]:".Localize(), ref maxZJerk)); GuiWidget topBottomSpacer = new GuiWidget(1, 1); topBottomSpacer.VAnchor = VAnchor.ParentBottomTop; topToBottom.AddChild(topBottomSpacer); mainContainer.AddChild(topToBottom); // the bottom button bar { FlowLayoutWidget bottomButtonBar = new FlowLayoutWidget(); bottomButtonBar.HAnchor = Agg.UI.HAnchor.Max_FitToChildren_ParentWidth; bottomButtonBar.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; bottomButtonBar.Margin = new BorderDouble(0, 3); Button buttonSave = textImageButtonFactory.Generate("Save to EEProm".Localize()); bottomButtonBar.AddChild(buttonSave); buttonSave.Click += (sender, e) => { UiThread.RunOnIdle(() => { SaveSettingsToActive(); currentEePromSettings.SaveToEeProm(); Close(); }); }; CreateSpacer(bottomButtonBar); // put in the import button #if true { Button buttonImport = textImageButtonFactory.Generate("Import".Localize() + "..."); buttonImport.Margin = new BorderDouble(0, 3); buttonImport.Click += (sender, e) => { UiThread.RunOnIdle(() => { FileDialog.OpenFileDialog( new OpenFileDialogParams("EEPROM Settings" + "|*.ini") { ActionButtonLabel = "Import EEPROM Settings".Localize(), Title = "Import EEPROM".Localize(), }, (openParams) => { if (!string.IsNullOrEmpty(openParams.FileName)) { currentEePromSettings.Import(openParams.FileName); SetUiToPrinterSettings(null, null); } }); }); }; bottomButtonBar.AddChild(buttonImport); } // put in the export button { Button buttonExport = textImageButtonFactory.Generate("Export".Localize() + "..."); buttonExport.Margin = new BorderDouble(0, 3); buttonExport.Click += (sender, e) => { UiThread.RunOnIdle(() => { string defaultFileNameNoPath = "eeprom_settings.ini"; FileDialog.SaveFileDialog( new SaveFileDialogParams("EEPROM Settings" + "|*.ini") { ActionButtonLabel = "Export EEPROM Settings".Localize(), Title = "Export EEPROM".Localize(), FileName = defaultFileNameNoPath }, (saveParams) => { if (!string.IsNullOrEmpty(saveParams.FileName) && saveParams.FileName != defaultFileNameNoPath) { currentEePromSettings.Export(saveParams.FileName); } }); }); }; bottomButtonBar.AddChild(buttonExport); } #endif Button buttonAbort = textImageButtonFactory.Generate("Close".Localize()); bottomButtonBar.AddChild(buttonAbort); buttonAbort.Click += buttonAbort_Click; mainContainer.AddChild(bottomButtonBar); } PrinterConnectionAndCommunication.Instance.CommunicationUnconditionalFromPrinter.RegisterEvent(currentEePromSettings.Add, ref unregisterEvents); #if __ANDROID__ TerminalWidget terminalWidget = new TerminalWidget(true); this.AddChild(new SoftKeyboardContentOffset(mainContainer)); //mainContainer.Closed += (sender, e) => { Close(); }; #else AddChild(mainContainer); #endif ShowAsSystemWindow(); // and ask the printer to send the settings currentEePromSettings.Update(); foreach (GuiWidget widget in leftStuffToSize) { widget.Width = maxWidthOfLeftStuff; } }
public EePromMarlinWindow() : base(700, 480) { AlwaysOnTopOfMain = true; Title = LocalizedString.Get("Marlin Firmware EEPROM Settings"); currentEePromSettings = new EePromMarlinSettings(); currentEePromSettings.eventAdded += SetUiToPrinterSettings; FlowLayoutWidget mainContainer = new FlowLayoutWidget(FlowDirection.TopToBottom); mainContainer.VAnchor = Agg.UI.VAnchor.Max_FitToChildren_ParentHeight; mainContainer.HAnchor = Agg.UI.HAnchor.ParentLeftRight; mainContainer.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; mainContainer.Padding = new BorderDouble(3, 0); FlowLayoutWidget topToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom); topToBottom.VAnchor = Agg.UI.VAnchor.Max_FitToChildren_ParentHeight; topToBottom.HAnchor = Agg.UI.HAnchor.ParentLeftRight; topToBottom.BackgroundColor = ActiveTheme.Instance.SecondaryBackgroundColor; topToBottom.Padding = new BorderDouble(top: 3); // the top button bar { FlowLayoutWidget topButtonBar = new FlowLayoutWidget(); topButtonBar.HAnchor = Agg.UI.HAnchor.ParentLeftRight; topButtonBar.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; topButtonBar.Margin = new BorderDouble(0, 3); CreateMainButton(ref buttonSetToFactorySettings, topButtonBar, "Reset to Factory Defaults"); buttonSetToFactorySettings.Click += SetToFactorySettings; mainContainer.AddChild(topButtonBar); } topToBottom.AddChild(Create4FieldSet("Steps per mm:", "X:", ref stepsPerMmX, "Y:", ref stepsPerMmY, "Z:", ref stepsPerMmZ, "E:", ref stepsPerMmE)); topToBottom.AddChild(Create4FieldSet("Maximum feedrates [mm/s]:", "X:", ref maxFeedrateMmPerSX, "Y:", ref maxFeedrateMmPerSY, "Z:", ref maxFeedrateMmPerSZ, "E:", ref maxFeedrateMmPerSE)); topToBottom.AddChild(Create4FieldSet("Maximum Acceleration [mm/s²]:", "X:", ref maxAccelerationMmPerSSqrdX, "Y:", ref maxAccelerationMmPerSSqrdY, "Z:", ref maxAccelerationMmPerSSqrdZ, "E:", ref maxAccelerationMmPerSSqrdE)); topToBottom.AddChild(CreateField("Acceleration:", ref acceleration)); topToBottom.AddChild(CreateField("Retract Acceleration:", ref retractAcceleration)); topToBottom.AddChild(Create3FieldSet("PID settings:", "P:", ref pidP, "I:", ref pidI, "D:", ref pidD)); topToBottom.AddChild(Create3FieldSet("Homing Offset:", "X:", ref homingOffsetX, "Y:", ref homingOffsetY, "Z:", ref homingOffsetZ)); topToBottom.AddChild(CreateField("Min feedrate [mm/s]:", ref minFeedrate)); topToBottom.AddChild(CreateField("Min travel feedrate [mm/s]:", ref minTravelFeedrate)); topToBottom.AddChild(CreateField("Minimum segment time [ms]:", ref minSegmentTime)); topToBottom.AddChild(CreateField("Maximum X-Y jerk [mm/s]:", ref maxXYJerk)); topToBottom.AddChild(CreateField("Maximum Z jerk [mm/s]:", ref maxZJerk)); GuiWidget topBottomSpacer = new GuiWidget(1, 1); topBottomSpacer.VAnchor = VAnchor.ParentBottomTop; topToBottom.AddChild(topBottomSpacer); mainContainer.AddChild(topToBottom); // the bottom button bar { FlowLayoutWidget bottomButtonBar = new FlowLayoutWidget(); bottomButtonBar.HAnchor = Agg.UI.HAnchor.Max_FitToChildren_ParentWidth; bottomButtonBar.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; bottomButtonBar.Margin = new BorderDouble(0, 3); CreateMainButton(ref buttonSave, bottomButtonBar, "Save to EEProm"); buttonSave.Click += buttonSave_Click; CreateSpacer(bottomButtonBar); CreateMainButton(ref buttonAbort, bottomButtonBar, "Close"); buttonAbort.Click += buttonAbort_Click; mainContainer.AddChild(bottomButtonBar); } PrinterConnectionAndCommunication.Instance.CommunicationUnconditionalFromPrinter.RegisterEvent(currentEePromSettings.Add, ref unregisterEvents); #if __ANDROID__ TerminalWidget terminalWidget = new TerminalWidget(true); this.AddChild(new SoftKeyboardContentOffset(mainContainer, SoftKeyboardContentOffset.AndroidKeyboardOffset)); //mainContainer.Closed += (sender, e) => { Close(); }; #else AddChild(mainContainer); #endif ShowAsSystemWindow(); // and ask the printer to send the settings currentEePromSettings.Update(); foreach (GuiWidget widget in leftStuffToSize) { widget.Width = maxWidthOfLeftStuff; } }
public EePromMarlinWindow() : base(700, 480) { AlwaysOnTopOfMain = true; Title = LocalizedString.Get("Marlin Firmware EEPROM Settings"); currentEePromSettings = new EePromMarlinSettings(); currentEePromSettings.eventAdded += SetUiToPrinterSettings; FlowLayoutWidget mainContainer = new FlowLayoutWidget(FlowDirection.TopToBottom); mainContainer.VAnchor = Agg.UI.VAnchor.Max_FitToChildren_ParentHeight; mainContainer.HAnchor = Agg.UI.HAnchor.ParentLeftRight; mainContainer.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; mainContainer.Padding = new BorderDouble(3, 0); FlowLayoutWidget topToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom); topToBottom.VAnchor = Agg.UI.VAnchor.Max_FitToChildren_ParentHeight; topToBottom.HAnchor = Agg.UI.HAnchor.ParentLeftRight; topToBottom.BackgroundColor = ActiveTheme.Instance.SecondaryBackgroundColor; topToBottom.Padding = new BorderDouble(top: 3); // the top button bar { FlowLayoutWidget topButtonBar = new FlowLayoutWidget(); topButtonBar.HAnchor = Agg.UI.HAnchor.ParentLeftRight; topButtonBar.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; topButtonBar.Margin = new BorderDouble(0, 3); CreateMainButton(ref buttonSetToFactorySettings, topButtonBar, "Reset to Factory Defaults"); buttonSetToFactorySettings.Click += SetToFactorySettings; mainContainer.AddChild(topButtonBar); } topToBottom.AddChild(Create4FieldSet("Steps per mm:", "X:", ref stepsPerMmX, "Y:", ref stepsPerMmY, "Z:", ref stepsPerMmZ, "E:", ref stepsPerMmE)); topToBottom.AddChild(Create4FieldSet("Maximum feedrates [mm/s]:", "X:", ref maxFeedrateMmPerSX, "Y:", ref maxFeedrateMmPerSY, "Z:", ref maxFeedrateMmPerSZ, "E:", ref maxFeedrateMmPerSE)); topToBottom.AddChild(Create4FieldSet("Maximum Acceleration [mm/s²]:", "X:", ref maxAccelerationMmPerSSqrdX, "Y:", ref maxAccelerationMmPerSSqrdY, "Z:", ref maxAccelerationMmPerSSqrdZ, "E:", ref maxAccelerationMmPerSSqrdE)); topToBottom.AddChild(CreateField("Acceleration:", ref acceleration)); topToBottom.AddChild(CreateField("Retract Acceleration:", ref retractAcceleration)); topToBottom.AddChild(Create3FieldSet("PID settings:", "P:", ref pidP, "I:", ref pidI, "D:", ref pidD)); topToBottom.AddChild(Create3FieldSet("Homing Offset:", "X:", ref homingOffsetX, "Y:", ref homingOffsetY, "Z:", ref homingOffsetZ)); topToBottom.AddChild(CreateField("Min feedrate [mm/s]:", ref minFeedrate)); topToBottom.AddChild(CreateField("Min travel feedrate [mm/s]:", ref minTravelFeedrate)); topToBottom.AddChild(CreateField("Minimum segment time [ms]:", ref minSegmentTime)); topToBottom.AddChild(CreateField("Maximum X-Y jerk [mm/s]:", ref maxXYJerk)); topToBottom.AddChild(CreateField("Maximum Z jerk [mm/s]:", ref maxZJerk)); GuiWidget topBottomSpacer = new GuiWidget(1, 1); topBottomSpacer.VAnchor = VAnchor.ParentBottomTop; topToBottom.AddChild(topBottomSpacer); mainContainer.AddChild(topToBottom); // the bottom button bar { FlowLayoutWidget bottomButtonBar = new FlowLayoutWidget(); bottomButtonBar.HAnchor = Agg.UI.HAnchor.Max_FitToChildren_ParentWidth; bottomButtonBar.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; bottomButtonBar.Margin = new BorderDouble(0, 3); CreateMainButton(ref buttonSave, bottomButtonBar, "Save to EEProm"); buttonSave.Click += buttonSave_Click; CreateSpacer(bottomButtonBar); CreateMainButton(ref buttonAbort, bottomButtonBar, "Close"); buttonAbort.Click += buttonAbort_Click; mainContainer.AddChild(bottomButtonBar); } PrinterConnectionAndCommunication.Instance.CommunicationUnconditionalFromPrinter.RegisterEvent(currentEePromSettings.Add, ref unregisterEvents); #if __ANDROID__ TerminalWidget terminalWidget = new TerminalWidget(true); this.AddChild(new SoftKeyboardContentOffset(mainContainer)); //mainContainer.Closed += (sender, e) => { Close(); }; #else AddChild(mainContainer); #endif ShowAsSystemWindow(); // and ask the printer to send the settings currentEePromSettings.Update(); foreach (GuiWidget widget in leftStuffToSize) { widget.Width = maxWidthOfLeftStuff; } }
public EePromRepetierWindow() : base(540, 480) { AlwaysOnTopOfMain = true; BackgroundColor = ActiveTheme.Instance.SecondaryBackgroundColor; currentEePromSettings = new EePromRepetierStorage(); FlowLayoutWidget topToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom); topToBottom.VAnchor = Agg.UI.VAnchor.Max_FitToChildren_ParentHeight; topToBottom.HAnchor = Agg.UI.HAnchor.ParentLeftRight; topToBottom.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; topToBottom.Padding = new BorderDouble(3, 0) * TextWidget.GlobalPointSizeScaleRatio; FlowLayoutWidget row = new FlowLayoutWidget(); row.HAnchor = Agg.UI.HAnchor.ParentLeftRight; row.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; GuiWidget descriptionWidget = AddDescription(LocalizedString.Get("Description")); descriptionWidget.Margin = new BorderDouble(left: 3) * TextWidget.GlobalPointSizeScaleRatio; row.AddChild(descriptionWidget); CreateSpacer(row); GuiWidget valueText = new TextWidget(LocalizedString.Get("Value"), textColor: ActiveTheme.Instance.PrimaryTextColor); valueText.VAnchor = Agg.UI.VAnchor.ParentCenter; valueText.Margin = new BorderDouble(left: 5, right: 60) * TextWidget.GlobalPointSizeScaleRatio; row.AddChild(valueText); topToBottom.AddChild(row); { ScrollableWidget settingsAreaScrollBox = new ScrollableWidget(true); settingsAreaScrollBox.ScrollArea.HAnchor |= HAnchor.ParentLeftRight; settingsAreaScrollBox.AnchorAll(); settingsAreaScrollBox.BackgroundColor = ActiveTheme.Instance.SecondaryBackgroundColor; topToBottom.AddChild(settingsAreaScrollBox); settingsColmun = new FlowLayoutWidget(FlowDirection.TopToBottom); settingsColmun.HAnchor = HAnchor.Max_FitToChildren_ParentWidth; settingsAreaScrollBox.AddChild(settingsColmun); } FlowLayoutWidget buttonBar = new FlowLayoutWidget(); buttonBar.HAnchor = Agg.UI.HAnchor.Max_FitToChildren_ParentWidth; buttonBar.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; // put in the save button { Button buttonSave = textImageButtonFactory.Generate("Save To EEPROM".Localize()); buttonSave.Margin = new BorderDouble(0, 3) * TextWidget.GlobalPointSizeScaleRatio; buttonSave.Click += (sender, e) => { UiThread.RunOnIdle(() => { currentEePromSettings.Save(); currentEePromSettings.Clear(); currentEePromSettings.eventAdded -= NewSettingReadFromPrinter; Close(); }); }; buttonBar.AddChild(buttonSave); } CreateSpacer(buttonBar); // put in the import button { Button buttonImport = textImageButtonFactory.Generate("Import".Localize() + "..."); buttonImport.Margin = new BorderDouble(0, 3) * TextWidget.GlobalPointSizeScaleRatio; buttonImport.Click += (sender, e) => { UiThread.RunOnIdle(() => { FileDialog.OpenFileDialog( new OpenFileDialogParams("EEPROM Settings" + "|*.ini") { ActionButtonLabel = "Import EEPROM Settings".Localize(), Title = "Import EEPROM".Localize(), }, (openParams) => { if (!string.IsNullOrEmpty(openParams.FileName)) { currentEePromSettings.Import(openParams.FileName); RebuildUi(); } }); }); }; buttonBar.AddChild(buttonImport); } // put in the export button { Button buttonExport = textImageButtonFactory.Generate("Export".Localize() + "..."); buttonExport.Margin = new BorderDouble(0, 3) * TextWidget.GlobalPointSizeScaleRatio; buttonExport.Click += (sender, e) => { UiThread.RunOnIdle(() => { FileDialog.SaveFileDialog( new SaveFileDialogParams("EEPROM Settings" + "|*.ini") { ActionButtonLabel = "Export EEPROM Settings".Localize(), Title = "Export EEPROM".Localize(), FileName = "eeprom_settings.ini" }, (saveParams) => { if (!string.IsNullOrEmpty(saveParams.FileName)) { currentEePromSettings.Export(saveParams.FileName); } }); }); }; buttonBar.AddChild(buttonExport); } // put in the cancel button { Button buttonCancel = textImageButtonFactory.Generate("Close".Localize()); buttonCancel.Margin = new BorderDouble(10, 3, 0, 3) * TextWidget.GlobalPointSizeScaleRatio; buttonCancel.Click += (sender, e) => { UiThread.RunOnIdle(() => { currentEePromSettings.Clear(); currentEePromSettings.eventAdded -= NewSettingReadFromPrinter; Close(); }); }; buttonBar.AddChild(buttonCancel); } topToBottom.AddChild(buttonBar); #if __ANDROID__ TerminalWidget terminalWidget = new TerminalWidget(true); this.AddChild(new SoftKeyboardContentOffset(topToBottom)); //topToBottom.Closed += (sender, e) => { Close(); }; #else this.AddChild(topToBottom); #endif Title = LocalizedString.Get("Firmware EEPROM Settings"); ShowAsSystemWindow(); currentEePromSettings.Clear(); PrinterConnectionAndCommunication.Instance.CommunicationUnconditionalFromPrinter.RegisterEvent(currentEePromSettings.Add, ref unregisterEvents); currentEePromSettings.eventAdded += NewSettingReadFromPrinter; currentEePromSettings.AskPrinterForSettings(); #if SIMULATE_CONNECTION UiThread.RunOnIdle(AddSimulatedItems); #endif }
public EePromMarlinWindow() : base(700, 480) { AlwaysOnTopOfMain = true; Title = "Marlin Firmware EEPROM Settings".Localize(); currentEePromSettings = new EePromMarlinSettings(); currentEePromSettings.eventAdded += SetUiToPrinterSettings; FlowLayoutWidget mainContainer = new FlowLayoutWidget(FlowDirection.TopToBottom); mainContainer.VAnchor = Agg.UI.VAnchor.Max_FitToChildren_ParentHeight; mainContainer.HAnchor = Agg.UI.HAnchor.ParentLeftRight; mainContainer.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; mainContainer.Padding = new BorderDouble(3, 0); FlowLayoutWidget topToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom); topToBottom.VAnchor = Agg.UI.VAnchor.Max_FitToChildren_ParentHeight; topToBottom.HAnchor = Agg.UI.HAnchor.ParentLeftRight; topToBottom.BackgroundColor = ActiveTheme.Instance.SecondaryBackgroundColor; topToBottom.Padding = new BorderDouble(top: 3); // the top button bar { FlowLayoutWidget topButtonBar = new FlowLayoutWidget(); topButtonBar.HAnchor = Agg.UI.HAnchor.ParentLeftRight; topButtonBar.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; topButtonBar.Margin = new BorderDouble(0, 3); Button buttonSetToFactorySettings = textImageButtonFactory.Generate("Reset to Factory Defaults".Localize()); topButtonBar.AddChild(buttonSetToFactorySettings); buttonSetToFactorySettings.Click += (sender, e) => { currentEePromSettings.SetPrinterToFactorySettings(); currentEePromSettings.Update(); }; mainContainer.AddChild(topButtonBar); } topToBottom.AddChild(Create4FieldSet("Steps per mm:".Localize(), "X:", ref stepsPerMmX, "Y:", ref stepsPerMmY, "Z:", ref stepsPerMmZ, "E:", ref stepsPerMmE)); topToBottom.AddChild(Create4FieldSet("Maximum feedrates [mm/s]:".Localize(), "X:", ref maxFeedrateMmPerSX, "Y:", ref maxFeedrateMmPerSY, "Z:", ref maxFeedrateMmPerSZ, "E:", ref maxFeedrateMmPerSE)); topToBottom.AddChild(Create4FieldSet("Maximum Acceleration [mm/s²]:".Localize(), "X:", ref maxAccelerationMmPerSSqrdX, "Y:", ref maxAccelerationMmPerSSqrdY, "Z:", ref maxAccelerationMmPerSSqrdZ, "E:", ref maxAccelerationMmPerSSqrdE)); topToBottom.AddChild(CreateField("Acceleration:".Localize(), ref acceleration)); topToBottom.AddChild(CreateField("Retract Acceleration:".Localize(), ref retractAcceleration)); topToBottom.AddChild(Create3FieldSet("PID settings:".Localize(), "P:", ref pidP, "I:", ref pidI, "D:", ref pidD)); topToBottom.AddChild(Create3FieldSet("Homing Offset:".Localize(), "X:", ref homingOffsetX, "Y:", ref homingOffsetY, "Z:", ref homingOffsetZ)); topToBottom.AddChild(CreateField("Min feedrate [mm/s]:".Localize(), ref minFeedrate)); topToBottom.AddChild(CreateField("Min travel feedrate [mm/s]:".Localize(), ref minTravelFeedrate)); topToBottom.AddChild(CreateField("Minimum segment time [ms]:".Localize(), ref minSegmentTime)); topToBottom.AddChild(CreateField("Maximum X-Y jerk [mm/s]:".Localize(), ref maxXYJerk)); topToBottom.AddChild(CreateField("Maximum Z jerk [mm/s]:".Localize(), ref maxZJerk)); GuiWidget topBottomSpacer = new GuiWidget(1, 1); topBottomSpacer.VAnchor = VAnchor.ParentBottomTop; topToBottom.AddChild(topBottomSpacer); mainContainer.AddChild(topToBottom); // the bottom button bar { FlowLayoutWidget bottomButtonBar = new FlowLayoutWidget(); bottomButtonBar.HAnchor = Agg.UI.HAnchor.Max_FitToChildren_ParentWidth; bottomButtonBar.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; bottomButtonBar.Margin = new BorderDouble(0, 3); Button buttonSave = textImageButtonFactory.Generate("Save to EEProm".Localize()); bottomButtonBar.AddChild(buttonSave); buttonSave.Click += (sender, e) => { UiThread.RunOnIdle(() => { SaveSettingsToActive(); currentEePromSettings.SaveToEeProm(); Close(); }); }; CreateSpacer(bottomButtonBar); // put in the import button #if true { Button buttonImport = textImageButtonFactory.Generate("Import".Localize() + "..."); buttonImport.Margin = new BorderDouble(0, 3) * TextWidget.GlobalPointSizeScaleRatio; buttonImport.Click += (sender, e) => { UiThread.RunOnIdle(() => { FileDialog.OpenFileDialog( new OpenFileDialogParams("EEPROM Settings" + "|*.ini") { ActionButtonLabel = "Import EEPROM Settings".Localize(), Title = "Import EEPROM".Localize(), }, (openParams) => { if (!string.IsNullOrEmpty(openParams.FileName)) { currentEePromSettings.Import(openParams.FileName); SetUiToPrinterSettings(null, null); } }); }); }; bottomButtonBar.AddChild(buttonImport); } // put in the export button { Button buttonExport = textImageButtonFactory.Generate("Export".Localize() + "..."); buttonExport.Margin = new BorderDouble(0, 3) * TextWidget.GlobalPointSizeScaleRatio; buttonExport.Click += (sender, e) => { UiThread.RunOnIdle(() => { string defaultFileNameNoPath = "eeprom_settings.ini"; FileDialog.SaveFileDialog( new SaveFileDialogParams("EEPROM Settings" + "|*.ini") { ActionButtonLabel = "Export EEPROM Settings".Localize(), Title = "Export EEPROM".Localize(), FileName = defaultFileNameNoPath }, (saveParams) => { if (!string.IsNullOrEmpty(saveParams.FileName) && saveParams.FileName != defaultFileNameNoPath) { currentEePromSettings.Export(saveParams.FileName); } }); }); }; bottomButtonBar.AddChild(buttonExport); } #endif Button buttonAbort = textImageButtonFactory.Generate("Close".Localize()); bottomButtonBar.AddChild(buttonAbort); buttonAbort.Click += buttonAbort_Click; mainContainer.AddChild(bottomButtonBar); } PrinterConnectionAndCommunication.Instance.CommunicationUnconditionalFromPrinter.RegisterEvent(currentEePromSettings.Add, ref unregisterEvents); #if __ANDROID__ TerminalWidget terminalWidget = new TerminalWidget(true); this.AddChild(new SoftKeyboardContentOffset(mainContainer)); //mainContainer.Closed += (sender, e) => { Close(); }; #else AddChild(mainContainer); #endif ShowAsSystemWindow(); // and ask the printer to send the settings currentEePromSettings.Update(); foreach (GuiWidget widget in leftStuffToSize) { widget.Width = maxWidthOfLeftStuff; } }