From 8134b3f4503a367a3890948e49e307bd6aacfdd5 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Fri, 3 Feb 2017 13:06:08 -0800 Subject: [PATCH] Fixed the Macros window to cancel on user closes with the X windows button. Put cancel into max length and temp stream Made close function take a bool if the system did it Moved To EventHandler<> in GuiWidget Made a ClosedEventsArgs --- AboutPage/ContactForm.cs | 2 +- AboutPage/UpdateControlView.cs | 2 +- ActionBar/ActionBarPlus.cs | 2 +- ActionBar/PrintActionRow.cs | 2 +- ActionBar/PrintStatusRow.cs | 4 +-- ActionBar/PrinterConnectAndSelectControl.cs | 2 +- ActionBar/PrinterSelector.cs | 2 +- ActionBar/TemperatureWidgetBed.cs | 3 +- ActionBar/TemperatureWidgetExtruder.cs | 3 +- ApplicationView/AdvancedControlsPanel.cs | 2 +- ApplicationView/CompactSlidePanel.cs | 2 +- ApplicationView/FirstPanelTabView.cs | 2 +- ApplicationView/MenuRow/ApplicationMenuRow.cs | 2 +- ApplicationView/MenuRow/MenuOptionAction.cs | 2 +- ApplicationView/TouchscreenTabView.cs | 2 +- ApplicationView/WidescreenPanel.cs | 4 +-- .../CalibrationSettingsView.cs | 2 +- .../CloudSettings/CloudSettingsView.cs | 2 +- .../PrintLeveling/PrintLevelPages.cs | 4 +-- ConfigurationPage/PrinterConfigurationPage.cs | 2 +- .../PrinterSettings/PrinterSettingsView.cs | 2 +- ConfigurationPage/RunningMacroPage.cs | 26 +++++++++------ ControlElements/AttentionGetter.cs | 4 +-- ControlElements/PopOutManager.cs | 4 +-- CustomWidgets/DropDownMenuWidget.cs | 2 +- CustomWidgets/ExportPrintItemWindow.cs | 2 +- .../LibrarySelector/LibrarySelectorRowItem.cs | 2 +- .../LibrarySelector/LibrarySelectorWidget.cs | 2 +- CustomWidgets/PartThumbnailWidget.cs | 2 +- CustomWidgets/PrintProgressBarWidget.cs | 2 +- CustomWidgets/PrintingWindow.cs | 2 +- CustomWidgets/WizardControl.cs | 2 +- EeProm/EePromMarlinWindow.cs | 2 +- EeProm/EePromRepetierWindow.cs | 2 +- History/PrintHistoryDataView.cs | 2 +- History/PrintHistoryListItem.cs | 6 ++-- Library/LibraryDataView.cs | 2 +- Library/LibraryRowItem.cs | 2 +- Library/LibraryRowItemPart.cs | 10 +++--- Library/PrintLibraryWidget.cs | 2 +- MatterControlApplication.cs | 2 +- .../BaseClasses/PartPreview3DWidget.cs | 2 +- PartPreviewWindow/PartPreviewContent.cs | 2 +- PartPreviewWindow/PartPreviewMainWindow.cs | 2 +- .../View3D/Gui3D/HeightValueDisplay.cs | 4 +-- .../View3D/Gui3D/SnapingIndicator.cs | 4 +-- PartPreviewWindow/View3D/View3DWidget.cs | 6 ++-- PartPreviewWindow/ViewControls3D.cs | 2 +- PartPreviewWindow/ViewGcodeBasic.cs | 2 +- PartPreviewWindow/ViewGcodeWidget.cs | 2 +- PrinterCommunication/Io/BabyStepsStream.cs | 5 +++ PrinterCommunication/Io/MaxLengthStream.cs | 26 +++++++++++---- .../Io/QueuedCommandsStream.cs | 2 -- PrinterCommunication/Io/WaitForTempStream.cs | 12 +++++-- .../PrinterConnectionAndCommunication.cs | 2 ++ .../ControlWidgets/AdjustmentControls.cs | 2 +- PrinterControls/ControlWidgets/FanControls.cs | 2 +- .../ControlWidgets/MovementControls.cs | 4 +-- .../ControlWidgets/PowerControls.cs | 2 +- PrinterControls/ManualPrinterControls.cs | 2 +- .../SetupStepComPortManual.cs | 2 +- .../PrinterConnections/SetupStepComPortTwo.cs | 2 +- PrinterControls/TemperatureIndicator.cs | 4 +-- .../TerminalWindow/TerminalWidget.cs | 4 +-- .../TerminalWindow/TerminalWindow.cs | 2 +- .../TerminalWindow/TextScrollWidget.cs | 2 +- PrinterControls/XYZJogControls.cs | 2 +- Queue/OptionsMenu/QueueOptionsMenu.cs | 4 +-- Queue/QueueDataView.cs | 2 +- Queue/QueueDataWidget.cs | 2 +- Queue/QueueRowItem.cs | 10 +++--- SetupWizard/AndroidConnectDevicePage.cs | 2 +- SetupWizard/AndroidSetupOptionsPage.cs | 4 +-- SetupWizard/EditPrinterSettingsPage.cs | 2 +- SetupWizard/SetupWizardTroubleshooting.cs | 2 +- SetupWizard/WizardWindow.cs | 2 +- .../SettingsControlSelectors.cs | 2 +- SlicerConfiguration/SliceSettingsWidget.cs | 6 ++-- StaticData/Images/Macros/TrimFilament.jpg | Bin 0 -> 32224 bytes StaticData/Translations/Master.txt | 30 ++++++++++++++++++ Submodules/agg-sharp | 2 +- .../MatterControl/PerformanceTests.cs | 15 +++++---- 82 files changed, 191 insertions(+), 127 deletions(-) create mode 100644 StaticData/Images/Macros/TrimFilament.jpg diff --git a/AboutPage/ContactForm.cs b/AboutPage/ContactForm.cs index 5403cdcf5..cf2d30965 100644 --- a/AboutPage/ContactForm.cs +++ b/AboutPage/ContactForm.cs @@ -341,7 +341,7 @@ namespace MatterHackers.MatterControl.ContactForm contactFormWidget.Closed += (sender, e) => { Close(); }; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/AboutPage/UpdateControlView.cs b/AboutPage/UpdateControlView.cs index 14df780b2..282b59c7d 100644 --- a/AboutPage/UpdateControlView.cs +++ b/AboutPage/UpdateControlView.cs @@ -90,7 +90,7 @@ namespace MatterHackers.MatterControl UpdateStatusChanged(null, null); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/ActionBar/ActionBarPlus.cs b/ActionBar/ActionBarPlus.cs index 98b7f4130..9b07d1717 100644 --- a/ActionBar/ActionBarPlus.cs +++ b/ActionBar/ActionBarPlus.cs @@ -69,7 +69,7 @@ namespace MatterHackers.MatterControl this.Invalidate(); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/ActionBar/PrintActionRow.cs b/ActionBar/PrintActionRow.cs index 8ccac357b..4527ef435 100644 --- a/ActionBar/PrintActionRow.cs +++ b/ActionBar/PrintActionRow.cs @@ -99,7 +99,7 @@ namespace MatterHackers.MatterControl.ActionBar private EventHandler unregisterEvents; - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/ActionBar/PrintStatusRow.cs b/ActionBar/PrintStatusRow.cs index ec6ed94f8..f99e540ca 100644 --- a/ActionBar/PrintStatusRow.cs +++ b/ActionBar/PrintStatusRow.cs @@ -97,7 +97,7 @@ namespace MatterHackers.MatterControl.ActionBar } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (activePrintPreviewImage.ItemWrapper != null) { @@ -481,7 +481,7 @@ namespace MatterHackers.MatterControl.ActionBar } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/ActionBar/PrinterConnectAndSelectControl.cs b/ActionBar/PrinterConnectAndSelectControl.cs index 0d3d5896c..a549de302 100644 --- a/ActionBar/PrinterConnectAndSelectControl.cs +++ b/ActionBar/PrinterConnectAndSelectControl.cs @@ -76,7 +76,7 @@ namespace MatterHackers.MatterControl.ActionBar AddChildElements(); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/ActionBar/PrinterSelector.cs b/ActionBar/PrinterSelector.cs index cd1567b9c..64d972287 100644 --- a/ActionBar/PrinterSelector.cs +++ b/ActionBar/PrinterSelector.cs @@ -142,7 +142,7 @@ namespace MatterHackers.MatterControl } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/ActionBar/TemperatureWidgetBed.cs b/ActionBar/TemperatureWidgetBed.cs index a95bf5070..923546275 100644 --- a/ActionBar/TemperatureWidgetBed.cs +++ b/ActionBar/TemperatureWidgetBed.cs @@ -28,6 +28,7 @@ either expressed or implied, of the FreeBSD Project. */ using System; +using MatterHackers.Agg.UI; using MatterHackers.Localizations; using MatterHackers.MatterControl.PrinterCommunication; using MatterHackers.MatterControl.SlicerConfiguration; @@ -93,7 +94,7 @@ namespace MatterHackers.MatterControl.ActionBar } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/ActionBar/TemperatureWidgetExtruder.cs b/ActionBar/TemperatureWidgetExtruder.cs index 8da0eb2bf..02e5d0864 100644 --- a/ActionBar/TemperatureWidgetExtruder.cs +++ b/ActionBar/TemperatureWidgetExtruder.cs @@ -31,6 +31,7 @@ using MatterHackers.Localizations; using MatterHackers.MatterControl.PrinterCommunication; using MatterHackers.MatterControl.SlicerConfiguration; using System; +using MatterHackers.Agg.UI; namespace MatterHackers.MatterControl.ActionBar { @@ -92,7 +93,7 @@ namespace MatterHackers.MatterControl.ActionBar } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/ApplicationView/AdvancedControlsPanel.cs b/ApplicationView/AdvancedControlsPanel.cs index 987dfe20b..54057f726 100644 --- a/ApplicationView/AdvancedControlsPanel.cs +++ b/ApplicationView/AdvancedControlsPanel.cs @@ -83,7 +83,7 @@ namespace MatterHackers.MatterControl PopOutManager.SaveIfClosed = true; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/ApplicationView/CompactSlidePanel.cs b/ApplicationView/CompactSlidePanel.cs index a14b59049..af561f55f 100644 --- a/ApplicationView/CompactSlidePanel.cs +++ b/ApplicationView/CompactSlidePanel.cs @@ -134,7 +134,7 @@ namespace MatterHackers.MatterControl } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/ApplicationView/FirstPanelTabView.cs b/ApplicationView/FirstPanelTabView.cs index dffdbadf2..f5de3f996 100644 --- a/ApplicationView/FirstPanelTabView.cs +++ b/ApplicationView/FirstPanelTabView.cs @@ -94,7 +94,7 @@ namespace MatterHackers.MatterControl firstPanelCurrentTab = SelectedTabIndex; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/ApplicationView/MenuRow/ApplicationMenuRow.cs b/ApplicationView/MenuRow/ApplicationMenuRow.cs index a61d905ba..d662c3ea1 100644 --- a/ApplicationView/MenuRow/ApplicationMenuRow.cs +++ b/ApplicationView/MenuRow/ApplicationMenuRow.cs @@ -115,7 +115,7 @@ namespace MatterHackers.MatterControl }, ref unregisterEvents); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/ApplicationView/MenuRow/MenuOptionAction.cs b/ApplicationView/MenuRow/MenuOptionAction.cs index 421375553..35fbc3734 100644 --- a/ApplicationView/MenuRow/MenuOptionAction.cs +++ b/ApplicationView/MenuRow/MenuOptionAction.cs @@ -29,7 +29,7 @@ namespace MatterHackers.MatterControl base.OnLoad(args); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/ApplicationView/TouchscreenTabView.cs b/ApplicationView/TouchscreenTabView.cs index 91f8c26c8..54c11e327 100644 --- a/ApplicationView/TouchscreenTabView.cs +++ b/ApplicationView/TouchscreenTabView.cs @@ -249,7 +249,7 @@ namespace MatterHackers.MatterControl private EventHandler unregisterEvents; - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); } diff --git a/ApplicationView/WidescreenPanel.cs b/ApplicationView/WidescreenPanel.cs index 866153d0f..f4187cf66 100644 --- a/ApplicationView/WidescreenPanel.cs +++ b/ApplicationView/WidescreenPanel.cs @@ -82,7 +82,7 @@ namespace MatterHackers.MatterControl base.OnBoundsChanged(e); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); @@ -193,7 +193,7 @@ namespace MatterHackers.MatterControl leftBorderLine.Width = 15; leftBorderLine.BeforeDraw += (widget, graphics2D) => { - RectangleDouble bounds = widget.LocalBounds; + RectangleDouble bounds = ((GuiWidget)widget).LocalBounds; bounds.Left += 3; bounds.Right -= 8; graphics2D.graphics2D.FillRectangle(bounds, new RGBA_Bytes(160, 160, 160)); diff --git a/ConfigurationPage/CalibrationSettings/CalibrationSettingsView.cs b/ConfigurationPage/CalibrationSettings/CalibrationSettingsView.cs index f81eee16b..01911f306 100644 --- a/ConfigurationPage/CalibrationSettings/CalibrationSettingsView.cs +++ b/ConfigurationPage/CalibrationSettings/CalibrationSettingsView.cs @@ -136,7 +136,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage return buttonRow; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/ConfigurationPage/CloudSettings/CloudSettingsView.cs b/ConfigurationPage/CloudSettings/CloudSettingsView.cs index 9407cec3a..3a9fb1a27 100644 --- a/ConfigurationPage/CloudSettings/CloudSettingsView.cs +++ b/ConfigurationPage/CloudSettings/CloudSettingsView.cs @@ -164,7 +164,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage return notificationSettingsContainer; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/ConfigurationPage/PrintLeveling/PrintLevelPages.cs b/ConfigurationPage/PrintLeveling/PrintLevelPages.cs index 71e14b84f..5329c86b8 100644 --- a/ConfigurationPage/PrintLeveling/PrintLevelPages.cs +++ b/ConfigurationPage/PrintLeveling/PrintLevelPages.cs @@ -122,7 +122,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling private EventHandler unregisterEvents; - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); @@ -222,7 +222,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling private EventHandler unregisterEvents; - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/ConfigurationPage/PrinterConfigurationPage.cs b/ConfigurationPage/PrinterConfigurationPage.cs index dd07790dc..bfae7670e 100644 --- a/ConfigurationPage/PrinterConfigurationPage.cs +++ b/ConfigurationPage/PrinterConfigurationPage.cs @@ -219,7 +219,7 @@ namespace MatterHackers.MatterControl return topLine; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/ConfigurationPage/PrinterSettings/PrinterSettingsView.cs b/ConfigurationPage/PrinterSettings/PrinterSettingsView.cs index caa66f72c..0bce6a130 100644 --- a/ConfigurationPage/PrinterSettings/PrinterSettingsView.cs +++ b/ConfigurationPage/PrinterSettings/PrinterSettingsView.cs @@ -52,7 +52,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage SetEnabledStates(); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/ConfigurationPage/RunningMacroPage.cs b/ConfigurationPage/RunningMacroPage.cs index 5e8dfb068..2bfd6fa21 100644 --- a/ConfigurationPage/RunningMacroPage.cs +++ b/ConfigurationPage/RunningMacroPage.cs @@ -53,10 +53,10 @@ namespace MatterHackers.MatterControl.PrinterControls double startingBedTemp = 0; public RunningMacroPage(string message, bool showOkButton, bool showMaterialSelector, double expectedSeconds, double expectedTemperature, ImageBuffer imageBuffer) - : base("Cancel", "Macro Feedback") + : base("Cancel", message) { - TextWidget syncingText = new TextWidget(message, textColor: ActiveTheme.Instance.PrimaryTextColor); - contentRow.AddChild(syncingText); + //TextWidget syncingText = new TextWidget(message, textColor: ActiveTheme.Instance.PrimaryTextColor); + //contentRow.AddChild(syncingText); int extruderCount = ActiveSliceSettings.Instance.GetValue(SettingsKey.extruder_count); for (int i = 0; i < extruderCount; i++) @@ -116,7 +116,7 @@ namespace MatterHackers.MatterControl.PrinterControls { FillColor = ActiveTheme.Instance.PrimaryAccentColor, BorderColor = ActiveTheme.Instance.PrimaryTextColor, - //HAnchor = HAnchor.ParentCenter, + BackgroundColor = RGBA_Bytes.White, Margin = new BorderDouble(3, 0, 0, 10), }; progressBarText = new TextWidget("", pointSize: 10, textColor: ActiveTheme.Instance.PrimaryTextColor) @@ -143,6 +143,8 @@ namespace MatterHackers.MatterControl.PrinterControls private void CancelScript() { + PrinterConnectionAndCommunication.Instance.MacroCancel(); + for (int i = 0; i < startingExtruderTemps.Count; i++) { PrinterConnectionAndCommunication.Instance.SetTargetExtruderTemperature(i, startingExtruderTemps[i]); @@ -152,8 +154,6 @@ namespace MatterHackers.MatterControl.PrinterControls { PrinterConnectionAndCommunication.Instance.TargetBedTemperature = startingBedTemp; } - - PrinterConnectionAndCommunication.Instance.MacroCancel(); } private EventHandler unregisterEvents; @@ -163,8 +163,12 @@ namespace MatterHackers.MatterControl.PrinterControls WizardWindow.Show("Macro", "Running Macro", new RunningMacroPage(message, showOkButton, showMaterialSelector, expectedSeconds, expectedTemperature, image)); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { + if(e.OsEvent) + { + CancelScript(); + } unregisterEvents?.Invoke(this, null); base.OnClosed(e); @@ -198,11 +202,13 @@ namespace MatterHackers.MatterControl.PrinterControls private void ShowTempChangeProgress() { - double totalDelta = PrinterConnectionAndCommunication.Instance.GetTargetExtruderTemperature(0) - startingTemp; - double currentDelta = PrinterConnectionAndCommunication.Instance.GetActualExtruderTemperature(0) - startingTemp; + double targetTemp = PrinterConnectionAndCommunication.Instance.GetTargetExtruderTemperature(0); + double actualTemp = PrinterConnectionAndCommunication.Instance.GetActualExtruderTemperature(0); + double totalDelta = targetTemp - startingTemp; + double currentDelta = actualTemp - startingTemp; double ratioDone = totalDelta != 0 ? (currentDelta / totalDelta) : 1; progressBar.RatioComplete = Math.Min(Math.Max(0, ratioDone), 1); - //progressBarText.Text = $"Time Remaining: {seconds / 60:#0}:{seconds % 60:00}"; + progressBarText.Text = $"Temperature: {actualTemp:0} / {targetTemp:0}"; if (!HasBeenClosed && ratioDone < 1) { UiThread.RunOnIdle(ShowTempChangeProgress, 1); diff --git a/ControlElements/AttentionGetter.cs b/ControlElements/AttentionGetter.cs index 3121dc4ad..437910376 100644 --- a/ControlElements/AttentionGetter.cs +++ b/ControlElements/AttentionGetter.cs @@ -150,9 +150,9 @@ namespace MatterHackers.MatterControl return 2.0f * t * (1.0f - t) + 0.5; } - private void ConnectToWidget(GuiWidget drawingWidget, DrawEventArgs e) + private void ConnectToWidget(object drawingWidget, DrawEventArgs e) { - GuiWidget parent = drawingWidget; + GuiWidget parent = drawingWidget as GuiWidget; while (parent.BackgroundColor.Alpha0To255 == 0) { parent = parent.Parent; diff --git a/ControlElements/PopOutManager.cs b/ControlElements/PopOutManager.cs index 11be99952..202661178 100644 --- a/ControlElements/PopOutManager.cs +++ b/ControlElements/PopOutManager.cs @@ -223,7 +223,7 @@ namespace MatterHackers.MatterControl } } - private void ShowOnNextMatterControlDraw(GuiWidget drawingWidget, DrawEventArgs e) + private void ShowOnNextMatterControlDraw(Object drawingWidget, DrawEventArgs e) { if (widgetWithPopContent.Children.Count > 0) { @@ -240,7 +240,7 @@ namespace MatterHackers.MatterControl ApplicationController.Instance.MainView.AfterDraw -= ShowOnNextMatterControlDraw; } - private void SystemWindow_Closing(object sender, WidgetClosingEnventArgs closingEvent) + private void SystemWindow_Closing(object sender, ClosingEventArgs closingEvent) { if (systemWindowWithPopContent != null) { diff --git a/CustomWidgets/DropDownMenuWidget.cs b/CustomWidgets/DropDownMenuWidget.cs index e45f4deb0..f7ef2ff6b 100644 --- a/CustomWidgets/DropDownMenuWidget.cs +++ b/CustomWidgets/DropDownMenuWidget.cs @@ -100,7 +100,7 @@ namespace MatterHackers.Agg.UI HoverArrowColor = TextColor; } - protected override void DropListItems_Closed(object sender, EventArgs e) + protected override void DropListItems_Closed(object sender, ClosedEventArgs e) { BackgroundColor = NormalColor; base.DropListItems_Closed(sender, e); diff --git a/CustomWidgets/ExportPrintItemWindow.cs b/CustomWidgets/ExportPrintItemWindow.cs index efeaab1bb..1fc5602fc 100644 --- a/CustomWidgets/ExportPrintItemWindow.cs +++ b/CustomWidgets/ExportPrintItemWindow.cs @@ -376,7 +376,7 @@ namespace MatterHackers.MatterControl } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { printItemWrapper.SlicingDone -= sliceItem_Done; if (unregisterEvents != null) diff --git a/CustomWidgets/LibrarySelector/LibrarySelectorRowItem.cs b/CustomWidgets/LibrarySelector/LibrarySelectorRowItem.cs index 3d32c0773..2be3d2ce1 100644 --- a/CustomWidgets/LibrarySelector/LibrarySelectorRowItem.cs +++ b/CustomWidgets/LibrarySelector/LibrarySelectorRowItem.cs @@ -184,7 +184,7 @@ namespace MatterHackers.MatterControl.CustomWidgets.LibrarySelector } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/CustomWidgets/LibrarySelector/LibrarySelectorWidget.cs b/CustomWidgets/LibrarySelector/LibrarySelectorWidget.cs index 9fbceac2a..2ec680c25 100644 --- a/CustomWidgets/LibrarySelector/LibrarySelectorWidget.cs +++ b/CustomWidgets/LibrarySelector/LibrarySelectorWidget.cs @@ -222,7 +222,7 @@ namespace MatterHackers.MatterControl.CustomWidgets.LibrarySelector this.SelectedItems.Clear(); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { currentLibraryProvider.DataReloaded -= LibraryDataReloaded; diff --git a/CustomWidgets/PartThumbnailWidget.cs b/CustomWidgets/PartThumbnailWidget.cs index b38af98ac..60fecb886 100644 --- a/CustomWidgets/PartThumbnailWidget.cs +++ b/CustomWidgets/PartThumbnailWidget.cs @@ -198,7 +198,7 @@ namespace MatterHackers.MatterControl return GetImageFileName(item.FileHashCode.ToString()); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/CustomWidgets/PrintProgressBarWidget.cs b/CustomWidgets/PrintProgressBarWidget.cs index 89b57a148..115e1474e 100644 --- a/CustomWidgets/PrintProgressBarWidget.cs +++ b/CustomWidgets/PrintProgressBarWidget.cs @@ -139,7 +139,7 @@ namespace MatterHackers.MatterControl UiThread.RunOnIdle(OnIdle); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/CustomWidgets/PrintingWindow.cs b/CustomWidgets/PrintingWindow.cs index f7c778919..7acfedb04 100644 --- a/CustomWidgets/PrintingWindow.cs +++ b/CustomWidgets/PrintingWindow.cs @@ -716,7 +716,7 @@ namespace MatterHackers.MatterControl.CustomWidgets } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); diff --git a/CustomWidgets/WizardControl.cs b/CustomWidgets/WizardControl.cs index 8d80e8d99..e6307a7af 100644 --- a/CustomWidgets/WizardControl.cs +++ b/CustomWidgets/WizardControl.cs @@ -150,7 +150,7 @@ namespace MatterHackers.MatterControl } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { ApplicationController.Instance.ReloadAll(); base.OnClosed(e); diff --git a/EeProm/EePromMarlinWindow.cs b/EeProm/EePromMarlinWindow.cs index 5196a6f56..c2f71255d 100644 --- a/EeProm/EePromMarlinWindow.cs +++ b/EeProm/EePromMarlinWindow.cs @@ -393,7 +393,7 @@ namespace MatterHackers.MatterControl.EeProm UiThread.RunOnIdle(Close); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); diff --git a/EeProm/EePromRepetierWindow.cs b/EeProm/EePromRepetierWindow.cs index 17cbbb998..915d1a0dd 100644 --- a/EeProm/EePromRepetierWindow.cs +++ b/EeProm/EePromRepetierWindow.cs @@ -221,7 +221,7 @@ namespace MatterHackers.MatterControl.EeProm buttonBar.AddChild(spacer); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/History/PrintHistoryDataView.cs b/History/PrintHistoryDataView.cs index df7664a80..70b8c1ef7 100644 --- a/History/PrintHistoryDataView.cs +++ b/History/PrintHistoryDataView.cs @@ -155,7 +155,7 @@ namespace MatterHackers.MatterControl.PrintHistory private EventHandler unregisterEvents; - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/History/PrintHistoryListItem.cs b/History/PrintHistoryListItem.cs index 75b7eeaec..687f3e6f1 100644 --- a/History/PrintHistoryListItem.cs +++ b/History/PrintHistoryListItem.cs @@ -387,7 +387,7 @@ namespace MatterHackers.MatterControl.PrintHistory if (partPreviewWindow == null) { partPreviewWindow = new PartPreviewMainWindow(itemWrapper, autoRotate); - partPreviewWindow.Closed += new EventHandler(PartPreviewWindow_Closed); + partPreviewWindow.Closed += PartPreviewWindow_Closed; } else { @@ -395,7 +395,7 @@ namespace MatterHackers.MatterControl.PrintHistory } } - private void PartPreviewWindow_Closed(object sender, EventArgs e) + private void PartPreviewWindow_Closed(object sender, ClosedEventArgs e) { this.partPreviewWindow = null; } @@ -410,7 +410,7 @@ namespace MatterHackers.MatterControl.PrintHistory rightButtonOverlay.SlideIn(); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/Library/LibraryDataView.cs b/Library/LibraryDataView.cs index 19db32c72..e5c5c32dd 100644 --- a/Library/LibraryDataView.cs +++ b/Library/LibraryDataView.cs @@ -223,7 +223,7 @@ namespace MatterHackers.MatterControl.PrintLibrary this.SelectedItems.Clear(); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (currentLibraryProvider != null) { diff --git a/Library/LibraryRowItem.cs b/Library/LibraryRowItem.cs index b8fffd04b..b52bb2f26 100644 --- a/Library/LibraryRowItem.cs +++ b/Library/LibraryRowItem.cs @@ -109,7 +109,7 @@ namespace MatterHackers.MatterControl.PrintLibrary public abstract bool Protected { get; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/Library/LibraryRowItemPart.cs b/Library/LibraryRowItemPart.cs index bf720bd0c..aa60d1460 100644 --- a/Library/LibraryRowItemPart.cs +++ b/Library/LibraryRowItemPart.cs @@ -247,7 +247,7 @@ namespace MatterHackers.MatterControl.PrintLibrary printItemWrapper = await this.GetPrintItemWrapperAsync(); } viewingWindow = new PartPreviewMainWindow(printItemWrapper, View3DWidget.AutoRotate.Enabled, openMode); - viewingWindow.Closed += new EventHandler(PartPreviewMainWindow_Closed); + viewingWindow.Closed += PartPreviewMainWindow_Closed; } else { @@ -326,7 +326,7 @@ namespace MatterHackers.MatterControl.PrintLibrary libraryDataView.CurrentLibraryProvider.RemoveItem(ItemIndex); } - private void ExportQueueItemWindow_Closed(object sender, EventArgs e) + private void ExportQueueItemWindow_Closed(object sender, ClosedEventArgs e) { exportingWindow = null; } @@ -403,7 +403,7 @@ namespace MatterHackers.MatterControl.PrintLibrary if (exportingWindow == null) { exportingWindow = new ExportPrintItemWindow(await this.GetPrintItemWrapperAsync()); - exportingWindow.Closed += new EventHandler(ExportQueueItemWindow_Closed); + exportingWindow.Closed += ExportQueueItemWindow_Closed; exportingWindow.ShowAsSystemWindow(); } else @@ -417,7 +417,7 @@ namespace MatterHackers.MatterControl.PrintLibrary if (exportingWindow == null) { exportingWindow = new ExportPrintItemWindow(printItem); - exportingWindow.Closed += new EventHandler(ExportQueueItemWindow_Closed); + exportingWindow.Closed += ExportQueueItemWindow_Closed; exportingWindow.ShowAsSystemWindow(); } else @@ -445,7 +445,7 @@ namespace MatterHackers.MatterControl.PrintLibrary } } - private void PartPreviewMainWindow_Closed(object sender, EventArgs e) + private void PartPreviewMainWindow_Closed(object sender, ClosedEventArgs e) { viewingWindow = null; } diff --git a/Library/PrintLibraryWidget.cs b/Library/PrintLibraryWidget.cs index 408132f97..e5b643030 100644 --- a/Library/PrintLibraryWidget.cs +++ b/Library/PrintLibraryWidget.cs @@ -504,7 +504,7 @@ namespace MatterHackers.MatterControl.PrintLibrary private EventHandler unregisterEvents; - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (this.libraryDataView != null && this.libraryDataView.CurrentLibraryProvider != null) diff --git a/MatterControlApplication.cs b/MatterControlApplication.cs index 8a56b1094..ecb9b29a3 100644 --- a/MatterControlApplication.cs +++ b/MatterControlApplication.cs @@ -563,7 +563,7 @@ namespace MatterHackers.MatterControl }); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { UserSettings.Instance.Fields.StartCountDurringExit = UserSettings.Instance.Fields.StartCount; diff --git a/PartPreviewWindow/BaseClasses/PartPreview3DWidget.cs b/PartPreviewWindow/BaseClasses/PartPreview3DWidget.cs index 7ee45e223..53e216f21 100644 --- a/PartPreviewWindow/BaseClasses/PartPreview3DWidget.cs +++ b/PartPreviewWindow/BaseClasses/PartPreview3DWidget.cs @@ -134,7 +134,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/PartPreviewWindow/PartPreviewContent.cs b/PartPreviewWindow/PartPreviewContent.cs index 56719737f..3e2b71adc 100644 --- a/PartPreviewWindow/PartPreviewContent.cs +++ b/PartPreviewWindow/PartPreviewContent.cs @@ -161,7 +161,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow viewGcodeBasic.Focus(); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/PartPreviewWindow/PartPreviewMainWindow.cs b/PartPreviewWindow/PartPreviewMainWindow.cs index 720d10da7..63c3a2d0a 100644 --- a/PartPreviewWindow/PartPreviewMainWindow.cs +++ b/PartPreviewWindow/PartPreviewMainWindow.cs @@ -78,7 +78,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow this.Invalidate(); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/PartPreviewWindow/View3D/Gui3D/HeightValueDisplay.cs b/PartPreviewWindow/View3D/Gui3D/HeightValueDisplay.cs index 86be5cd6f..68abb555f 100644 --- a/PartPreviewWindow/View3D/Gui3D/HeightValueDisplay.cs +++ b/PartPreviewWindow/View3D/Gui3D/HeightValueDisplay.cs @@ -51,12 +51,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow VAnchor = VAnchor.FitToChildren; HAnchor = HAnchor.FitToChildren; - MeshViewerToDrawWith.AfterDraw += new DrawEventHandler(MeshViewerToDrawWith_Draw); + MeshViewerToDrawWith.AfterDraw += MeshViewerToDrawWith_Draw; } private MeshViewerWidget MeshViewerToDrawWith { get { return view3DWidget.meshViewerWidget; } } - private void MeshViewerToDrawWith_Draw(GuiWidget drawingWidget, DrawEventArgs drawEvent) + private void MeshViewerToDrawWith_Draw(object drawingWidget, DrawEventArgs drawEvent) { if (Visible) { diff --git a/PartPreviewWindow/View3D/Gui3D/SnapingIndicator.cs b/PartPreviewWindow/View3D/Gui3D/SnapingIndicator.cs index 182ee213e..35e25f9a0 100644 --- a/PartPreviewWindow/View3D/Gui3D/SnapingIndicator.cs +++ b/PartPreviewWindow/View3D/Gui3D/SnapingIndicator.cs @@ -46,7 +46,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { this.view3DWidget = view3DWidget; this.DrawOnTop = true; - MeshViewerToDrawWith.AfterDraw += new DrawEventHandler(MeshViewerToDrawWith_Draw); + MeshViewerToDrawWith.AfterDraw += MeshViewerToDrawWith_Draw; } public override void SetPosition() @@ -115,7 +115,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } } - private void MeshViewerToDrawWith_Draw(GuiWidget drawingWidget, DrawEventArgs drawEvent) + private void MeshViewerToDrawWith_Draw(object drawingWidget, DrawEventArgs drawEvent) { if (MeshViewerToDrawWith.SelectedMeshGroup != null && view3DWidget.meshViewerWidget.SnapGridDistance > 0 diff --git a/PartPreviewWindow/View3D/View3DWidget.cs b/PartPreviewWindow/View3D/View3DWidget.cs index 039c1db19..523e36182 100644 --- a/PartPreviewWindow/View3D/View3DWidget.cs +++ b/PartPreviewWindow/View3D/View3DWidget.cs @@ -803,7 +803,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public WindowMode windowType { get; set; } private bool DoAddFileAfterCreatingEditData { get; set; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { @@ -2199,7 +2199,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow providerLocator = printItemWrapper.SourceLibraryProviderLocator; } saveAsWindow = new SaveAsWindow(MergeAndSavePartsToNewMeshFile, providerLocator, true, true); - saveAsWindow.Closed += new EventHandler(SaveAsWindow_Closed); + saveAsWindow.Closed += SaveAsWindow_Closed; } else { @@ -2297,7 +2297,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow return true; } - private void SaveAsWindow_Closed(object sender, EventArgs e) + private void SaveAsWindow_Closed(object sender, ClosedEventArgs e) { this.saveAsWindow = null; } diff --git a/PartPreviewWindow/ViewControls3D.cs b/PartPreviewWindow/ViewControls3D.cs index f32811788..f7510e197 100644 --- a/PartPreviewWindow/ViewControls3D.cs +++ b/PartPreviewWindow/ViewControls3D.cs @@ -203,7 +203,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow private EventHandler unregisterEvents; - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/PartPreviewWindow/ViewGcodeBasic.cs b/PartPreviewWindow/ViewGcodeBasic.cs index dfd89a227..1dedd1d43 100644 --- a/PartPreviewWindow/ViewGcodeBasic.cs +++ b/PartPreviewWindow/ViewGcodeBasic.cs @@ -1155,7 +1155,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { UnHookWidgetThatHasKeyDownHooked(); diff --git a/PartPreviewWindow/ViewGcodeWidget.cs b/PartPreviewWindow/ViewGcodeWidget.cs index ca156d185..d075b72b0 100644 --- a/PartPreviewWindow/ViewGcodeWidget.cs +++ b/PartPreviewWindow/ViewGcodeWidget.cs @@ -600,7 +600,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow GCodeFileLoaded.LoadInBackground(backgroundWorker, gcodePathAndFileName); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (gCodeRenderer != null) { diff --git a/PrinterCommunication/Io/BabyStepsStream.cs b/PrinterCommunication/Io/BabyStepsStream.cs index b4e67ff6d..d794ad026 100644 --- a/PrinterCommunication/Io/BabyStepsStream.cs +++ b/PrinterCommunication/Io/BabyStepsStream.cs @@ -88,5 +88,10 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io { offsetStream.Offset = new Vector3(0, 0, ActiveSliceSettings.Instance.GetValue(SettingsKey.baby_step_z_offset)); } + + public void CancelMoves() + { + maxLengthStream.Cancel(); + } } } \ No newline at end of file diff --git a/PrinterCommunication/Io/MaxLengthStream.cs b/PrinterCommunication/Io/MaxLengthStream.cs index 0daca475b..c1cb00b83 100644 --- a/PrinterCommunication/Io/MaxLengthStream.cs +++ b/PrinterCommunication/Io/MaxLengthStream.cs @@ -54,9 +54,6 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io { string lineFromChild = base.ReadLine(); - // disable this for a test - //return lineFromChild; - if (lineFromChild != null && LineIsMovement(lineFromChild)) { @@ -82,13 +79,19 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io nextPoint.feedRate = currentDestination.feedRate; for (int i = 0; i < numSegmentsToSend; i++) { - movesToSend.Add(nextPoint); + lock (movesToSend) + { + movesToSend.Add(nextPoint); + } nextPoint += deltaForSegment; } // send the first one PrinterMove positionToSend = movesToSend[0]; - movesToSend.RemoveAt(0); + lock (movesToSend) + { + movesToSend.RemoveAt(0); + } string altredLineToSend = CreateMovementLine(positionToSend, lastDestination); lastDestination = positionToSend; @@ -103,7 +106,10 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io else { PrinterMove positionToSend = movesToSend[0]; - movesToSend.RemoveAt(0); + lock (movesToSend) + { + movesToSend.RemoveAt(0); + } string lineToSend = CreateMovementLine(positionToSend, lastDestination); @@ -113,6 +119,14 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io } } + public void Cancel() + { + lock (movesToSend) + { + movesToSend.Clear(); + } + } + public override void SetPrinterPosition(PrinterMove position) { lastDestination = position; diff --git a/PrinterCommunication/Io/QueuedCommandsStream.cs b/PrinterCommunication/Io/QueuedCommandsStream.cs index 9a6c9da85..34a5331d0 100644 --- a/PrinterCommunication/Io/QueuedCommandsStream.cs +++ b/PrinterCommunication/Io/QueuedCommandsStream.cs @@ -223,8 +223,6 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io return imageBuffer; } - - return null; } diff --git a/PrinterCommunication/Io/WaitForTempStream.cs b/PrinterCommunication/Io/WaitForTempStream.cs index 7feefc400..566c3daf3 100644 --- a/PrinterCommunication/Io/WaitForTempStream.cs +++ b/PrinterCommunication/Io/WaitForTempStream.cs @@ -27,10 +27,10 @@ of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project. */ -using MatterHackers.GCodeVisualizer; -using MatterHackers.VectorMath; +using System; using System.Diagnostics; using System.Threading; +using MatterHackers.GCodeVisualizer; namespace MatterHackers.MatterControl.PrinterCommunication.Io { @@ -48,6 +48,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io public WaitForTempStream(GCodeStream internalStream) : base(internalStream) { + state = State.passthrough; } private enum State @@ -56,6 +57,11 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io public bool HeatingBed { get { return state == State.waitingForBedTemp; } } public bool HeatingExtruder { get { return state == State.waitingForExtruderTemp; } } + public void Cancel() + { + state = State.passthrough; + } + public override string ReadLine() { switch (state) @@ -187,4 +193,4 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io return null; } } -} +} \ No newline at end of file diff --git a/PrinterCommunication/PrinterConnectionAndCommunication.cs b/PrinterCommunication/PrinterConnectionAndCommunication.cs index 721b567ab..35cbc44aa 100644 --- a/PrinterCommunication/PrinterConnectionAndCommunication.cs +++ b/PrinterCommunication/PrinterConnectionAndCommunication.cs @@ -2908,6 +2908,8 @@ namespace MatterHackers.MatterControl.PrinterCommunication public void MacroCancel() { + babyStepsStream6?.CancelMoves(); + waitForTempStream5?.Cancel(); queuedCommandStream2?.Cancel(); } diff --git a/PrinterControls/ControlWidgets/AdjustmentControls.cs b/PrinterControls/ControlWidgets/AdjustmentControls.cs index ace9a1fbd..b18e512fb 100644 --- a/PrinterControls/ControlWidgets/AdjustmentControls.cs +++ b/PrinterControls/ControlWidgets/AdjustmentControls.cs @@ -223,7 +223,7 @@ namespace MatterHackers.MatterControl.PrinterControls }, ref unregisterEvents); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/PrinterControls/ControlWidgets/FanControls.cs b/PrinterControls/ControlWidgets/FanControls.cs index 66dbde191..df2eed45f 100644 --- a/PrinterControls/ControlWidgets/FanControls.cs +++ b/PrinterControls/ControlWidgets/FanControls.cs @@ -95,7 +95,7 @@ namespace MatterHackers.MatterControl.PrinterControls this.HAnchor = HAnchor.ParentLeftRight; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/PrinterControls/ControlWidgets/MovementControls.cs b/PrinterControls/ControlWidgets/MovementControls.cs index 57e5c7a79..c726c6ae2 100644 --- a/PrinterControls/ControlWidgets/MovementControls.cs +++ b/PrinterControls/ControlWidgets/MovementControls.cs @@ -89,7 +89,7 @@ namespace MatterHackers.MatterControl.PrinterControls return movementSpeeds["e0"]; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); @@ -395,7 +395,7 @@ namespace MatterHackers.MatterControl.PrinterControls zOffsetStreamDisplay.Text = zoffset.ToString("0.##"); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(null, null); base.OnClosed(e); diff --git a/PrinterControls/ControlWidgets/PowerControls.cs b/PrinterControls/ControlWidgets/PowerControls.cs index 577ab005d..6f58aedf1 100644 --- a/PrinterControls/ControlWidgets/PowerControls.cs +++ b/PrinterControls/ControlWidgets/PowerControls.cs @@ -102,7 +102,7 @@ namespace MatterHackers.MatterControl.PrinterControls this.textImageButtonFactory.pressedTextColor = ActiveTheme.Instance.PrimaryTextColor; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/PrinterControls/ManualPrinterControls.cs b/PrinterControls/ManualPrinterControls.cs index c00c2205c..7c6e1eeb0 100644 --- a/PrinterControls/ManualPrinterControls.cs +++ b/PrinterControls/ManualPrinterControls.cs @@ -105,7 +105,7 @@ namespace MatterHackers.MatterControl pluginsQueuedToAdd = false; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/PrinterControls/PrinterConnections/SetupStepComPortManual.cs b/PrinterControls/PrinterConnections/SetupStepComPortManual.cs index db8ac4893..ae456f985 100644 --- a/PrinterControls/PrinterConnections/SetupStepComPortManual.cs +++ b/PrinterControls/PrinterConnections/SetupStepComPortManual.cs @@ -55,7 +55,7 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections PrinterConnectionAndCommunication.Instance.CommunicationStateChanged.RegisterEvent(onPrinterStatusChanged, ref unregisterEvents); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/PrinterControls/PrinterConnections/SetupStepComPortTwo.cs b/PrinterControls/PrinterConnections/SetupStepComPortTwo.cs index 3426cfc27..34d97f2f2 100644 --- a/PrinterControls/PrinterConnections/SetupStepComPortTwo.cs +++ b/PrinterControls/PrinterConnections/SetupStepComPortTwo.cs @@ -43,7 +43,7 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/PrinterControls/TemperatureIndicator.cs b/PrinterControls/TemperatureIndicator.cs index 01b4de958..bae2b0536 100644 --- a/PrinterControls/TemperatureIndicator.cs +++ b/PrinterControls/TemperatureIndicator.cs @@ -447,7 +447,7 @@ namespace MatterHackers.MatterControl tempOffButton.Click += onOffButtonClicked; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents.Invoke(this, null); base.OnClosed(e); @@ -544,7 +544,7 @@ namespace MatterHackers.MatterControl tempOffButton.Click += onOffButtonClicked; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/PrinterControls/TerminalWindow/TerminalWidget.cs b/PrinterControls/TerminalWindow/TerminalWidget.cs index dd5ef7a63..35625ffd1 100644 --- a/PrinterControls/TerminalWindow/TerminalWidget.cs +++ b/PrinterControls/TerminalWindow/TerminalWidget.cs @@ -144,8 +144,8 @@ namespace MatterHackers.MatterControl manualCommandTextEdit.Margin = new BorderDouble(right: 3); manualCommandTextEdit.HAnchor = HAnchor.ParentLeftRight; manualCommandTextEdit.VAnchor = VAnchor.ParentBottom; - manualCommandTextEdit.ActualTextEditWidget.EnterPressed += new KeyEventHandler(manualCommandTextEdit_EnterPressed); - manualCommandTextEdit.ActualTextEditWidget.KeyDown += new KeyEventHandler(manualCommandTextEdit_KeyDown); + manualCommandTextEdit.ActualTextEditWidget.EnterPressed += manualCommandTextEdit_EnterPressed; + manualCommandTextEdit.ActualTextEditWidget.KeyDown += manualCommandTextEdit_KeyDown; manualEntryLayout.AddChild(manualCommandTextEdit); } diff --git a/PrinterControls/TerminalWindow/TerminalWindow.cs b/PrinterControls/TerminalWindow/TerminalWindow.cs index e60606f50..9bb5de2f2 100644 --- a/PrinterControls/TerminalWindow/TerminalWindow.cs +++ b/PrinterControls/TerminalWindow/TerminalWindow.cs @@ -120,7 +120,7 @@ namespace MatterHackers.MatterControl UserSettings.Instance.set(TerminalWindowPositionKey, string.Format("{0},{1}", DesktopPosition.x, DesktopPosition.y)); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { SaveOnClosing(); UserSettings.Instance.Fields.SetBool(TerminalWindowLeftOpen, terminalWasOpenOnAppClose); diff --git a/PrinterControls/TerminalWindow/TextScrollWidget.cs b/PrinterControls/TerminalWindow/TextScrollWidget.cs index 3034eddf0..3c4ae0708 100644 --- a/PrinterControls/TerminalWindow/TextScrollWidget.cs +++ b/PrinterControls/TerminalWindow/TextScrollWidget.cs @@ -175,7 +175,7 @@ namespace MatterHackers.MatterControl System.IO.File.WriteAllLines(filePath, allSourceLinesTemp); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/PrinterControls/XYZJogControls.cs b/PrinterControls/XYZJogControls.cs index 02ef16bcc..a7e5628fa 100644 --- a/PrinterControls/XYZJogControls.cs +++ b/PrinterControls/XYZJogControls.cs @@ -310,7 +310,7 @@ namespace MatterHackers.MatterControl // this.HAnchor |= HAnchor.ParentLeftRight; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/Queue/OptionsMenu/QueueOptionsMenu.cs b/Queue/OptionsMenu/QueueOptionsMenu.cs index e420fe392..e9b9d325c 100644 --- a/Queue/OptionsMenu/QueueOptionsMenu.cs +++ b/Queue/OptionsMenu/QueueOptionsMenu.cs @@ -207,7 +207,7 @@ namespace MatterHackers.MatterControl.PrintQueue return true; } - private void ExportToFolderFeedbackWindow_Closed(object sender, EventArgs e) + private void ExportToFolderFeedbackWindow_Closed(object sender, ClosedEventArgs e) { this.exportingWindow = null; } @@ -232,7 +232,7 @@ namespace MatterHackers.MatterControl.PrintQueue if (exportingWindow == null) { exportingWindow = new ExportToFolderFeedbackWindow(parts.Count, parts[0].Name, ActiveTheme.Instance.PrimaryBackgroundColor); - exportingWindow.Closed += new EventHandler(ExportToFolderFeedbackWindow_Closed); + exportingWindow.Closed += ExportToFolderFeedbackWindow_Closed; exportingWindow.ShowAsSystemWindow(); } else diff --git a/Queue/QueueDataView.cs b/Queue/QueueDataView.cs index 7bbe5f2a3..9fd9ce2ae 100644 --- a/Queue/QueueDataView.cs +++ b/Queue/QueueDataView.cs @@ -257,7 +257,7 @@ namespace MatterHackers.MatterControl.PrintQueue throw new NotImplementedException(); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/Queue/QueueDataWidget.cs b/Queue/QueueDataWidget.cs index e0fd03b96..dc053cf22 100644 --- a/Queue/QueueDataWidget.cs +++ b/Queue/QueueDataWidget.cs @@ -352,7 +352,7 @@ namespace MatterHackers.MatterControl.PrintQueue } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/Queue/QueueRowItem.cs b/Queue/QueueRowItem.cs index 7a9545c42..b08ad1449 100644 --- a/Queue/QueueRowItem.cs +++ b/Queue/QueueRowItem.cs @@ -269,7 +269,7 @@ namespace MatterHackers.MatterControl.PrintQueue PrintItemWrapper.SlicingOutputMessage += PrintItem_SlicingOutputMessage; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { PrintItemWrapper.SlicingOutputMessage -= PrintItem_SlicingOutputMessage; if (unregisterEvents != null) @@ -345,7 +345,7 @@ namespace MatterHackers.MatterControl.PrintQueue viewingWindow = new PartPreviewMainWindow(this.PrintItemWrapper, View3DWidget.AutoRotate.Enabled, openMode); viewingWindow.Name = "Queue Item " + PrintItemWrapper.Name + " Part Preview"; this.viewWindowIsOpen = true; - viewingWindow.Closed += new EventHandler(PartPreviewWindow_Closed); + viewingWindow.Closed += PartPreviewWindow_Closed; } else { @@ -396,7 +396,7 @@ namespace MatterHackers.MatterControl.PrintQueue } } - private void ExportQueueItemWindow_Closed(object sender, EventArgs e) + private void ExportQueueItemWindow_Closed(object sender, ClosedEventArgs e) { this.exportingWindowIsOpen = false; } @@ -476,7 +476,7 @@ namespace MatterHackers.MatterControl.PrintQueue { exportingWindow = new ExportPrintItemWindow(this.PrintItemWrapper); this.exportingWindowIsOpen = true; - exportingWindow.Closed += new EventHandler(ExportQueueItemWindow_Closed); + exportingWindow.Closed += ExportQueueItemWindow_Closed; exportingWindow.ShowAsSystemWindow(); } else @@ -488,7 +488,7 @@ namespace MatterHackers.MatterControl.PrintQueue } } - private void PartPreviewWindow_Closed(object sender, EventArgs e) + private void PartPreviewWindow_Closed(object sender, ClosedEventArgs e) { this.viewWindowIsOpen = false; } diff --git a/SetupWizard/AndroidConnectDevicePage.cs b/SetupWizard/AndroidConnectDevicePage.cs index 4bf8c9217..f1e407f1f 100644 --- a/SetupWizard/AndroidConnectDevicePage.cs +++ b/SetupWizard/AndroidConnectDevicePage.cs @@ -195,7 +195,7 @@ namespace MatterHackers.MatterControl this.Invalidate(); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/SetupWizard/AndroidSetupOptionsPage.cs b/SetupWizard/AndroidSetupOptionsPage.cs index 9aff48523..e07c0b907 100644 --- a/SetupWizard/AndroidSetupOptionsPage.cs +++ b/SetupWizard/AndroidSetupOptionsPage.cs @@ -130,7 +130,7 @@ namespace MatterHackers.MatterControl this.Invalidate(); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); @@ -271,7 +271,7 @@ namespace MatterHackers.MatterControl this.Close(); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/SetupWizard/EditPrinterSettingsPage.cs b/SetupWizard/EditPrinterSettingsPage.cs index f2a889e41..424bd7453 100644 --- a/SetupWizard/EditPrinterSettingsPage.cs +++ b/SetupWizard/EditPrinterSettingsPage.cs @@ -93,7 +93,7 @@ namespace MatterHackers.MatterControl } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/SetupWizard/SetupWizardTroubleshooting.cs b/SetupWizard/SetupWizardTroubleshooting.cs index 1f6728ddf..8cdb109e2 100644 --- a/SetupWizard/SetupWizardTroubleshooting.cs +++ b/SetupWizard/SetupWizardTroubleshooting.cs @@ -69,7 +69,7 @@ namespace MatterHackers.MatterControl } } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if(checkForPermissionTimer != null) { diff --git a/SetupWizard/WizardWindow.cs b/SetupWizard/WizardWindow.cs index 8d155f227..6917ad25d 100644 --- a/SetupWizard/WizardWindow.cs +++ b/SetupWizard/WizardWindow.cs @@ -113,7 +113,7 @@ namespace MatterHackers.MatterControl return wizardWindow; } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); diff --git a/SlicerConfiguration/SettingsControlSelectors.cs b/SlicerConfiguration/SettingsControlSelectors.cs index 55b557316..7b731c2a2 100644 --- a/SlicerConfiguration/SettingsControlSelectors.cs +++ b/SlicerConfiguration/SettingsControlSelectors.cs @@ -350,7 +350,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration private EventHandler unregisterEvents; - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { if (unregisterEvents != null) { diff --git a/SlicerConfiguration/SliceSettingsWidget.cs b/SlicerConfiguration/SliceSettingsWidget.cs index 6efcdb2ff..bee8ec860 100644 --- a/SlicerConfiguration/SliceSettingsWidget.cs +++ b/SlicerConfiguration/SliceSettingsWidget.cs @@ -319,7 +319,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration private EventHandler unregisterEvents; - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); @@ -678,7 +678,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration }, ref unregisterEvents); } - public override void OnClosed(EventArgs e) + public override void OnClosed(ClosedEventArgs e) { unregisterEvents?.Invoke(this, null); base.OnClosed(e); @@ -1687,7 +1687,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration totalContent.Closed += (s, e) => { - localUnregisterEvents?.Invoke(s, e); + localUnregisterEvents?.Invoke(s, null); }; return totalContent; diff --git a/StaticData/Images/Macros/TrimFilament.jpg b/StaticData/Images/Macros/TrimFilament.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b1b4d8076ea3814ab551a4beb9b359f61d5e3f33 GIT binary patch literal 32224 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 + EventHandler beforeDraw = (sender, e) => { if (firstDraw) { @@ -82,7 +83,7 @@ namespace MatterHackers.MatterControl container.BeforeDraw += beforeDraw; - DrawEventHandler afterDraw = null; + EventHandler afterDraw = null; afterDraw = (sender, e) => { totalDrawTime.Stop(); @@ -106,7 +107,7 @@ namespace MatterHackers.MatterControl { AutomationRunner clickPreview; - DrawEventHandler beforeDraw = null; + EventHandler beforeDraw = null; beforeDraw = (sender, e) => { clickPreview = new AutomationRunner(); @@ -129,7 +130,7 @@ namespace MatterHackers.MatterControl { //To run test invoke method in the queue data widget AutomationRunner testRunner; - DrawEventHandler beforeDraw = null; + EventHandler beforeDraw = null; beforeDraw = (sender, e) => { testRunner = new AutomationRunner(); @@ -147,7 +148,7 @@ namespace MatterHackers.MatterControl public static void AddLocalLibraryItemToQueue(GuiWidget container, double secondsBetweenClicks = .1) { AutomationRunner testRunner; - DrawEventHandler beforeDraw = null; + EventHandler beforeDraw = null; beforeDraw = (sender, e) => { testRunner = new AutomationRunner(); @@ -170,7 +171,7 @@ namespace MatterHackers.MatterControl public static void RenameLibraryItem(GuiWidget container, double secondsBetweenClicks = .1) { AutomationRunner testRunner; - DrawEventHandler beforeDraw = null; + EventHandler beforeDraw = null; beforeDraw = (sender, e) => { testRunner = new AutomationRunner(); @@ -197,7 +198,7 @@ namespace MatterHackers.MatterControl public static void CreateAndRenameLocalLibraryFolder(GuiWidget container, double secondsBetweenClicks = .1) { AutomationRunner testRunner; - DrawEventHandler beforeDraw = null; + EventHandler beforeDraw = null; beforeDraw = (sender, e) => { testRunner = new AutomationRunner();