diff --git a/AboutPage/ContactForm.cs b/AboutPage/ContactForm.cs index d1c53279f..412910c04 100644 --- a/AboutPage/ContactForm.cs +++ b/AboutPage/ContactForm.cs @@ -309,7 +309,7 @@ namespace MatterHackers.MatterControl.ContactForm } } - public class ContactFormWindow : SystemWindow, IReceiveRootedWeakEvent + public class ContactFormWindow : SystemWindow { static ContactFormWindow contactFormWindow; static bool contactFormIsOpen; @@ -349,23 +349,25 @@ namespace MatterHackers.MatterControl.ContactForm MinimumSize = new Vector2(500, 550); } + event EventHandler unregisterEvents; private void AddHandlers() { - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); contactFormWidget.Closed += (sender, e) => { Close(); }; } - public void RootedEvent(string eventType, EventArgs e) + public override void OnClosed(EventArgs e) { - switch (eventType) + if (unregisterEvents != null) { - case "ThemeChanged": - this.Invalidate(); - break; - - default: - throw new NotImplementedException(); + unregisterEvents(this, null); } + base.OnClosed(e); + } + + public void ThemeChanged(object sender, EventArgs e) + { + this.Invalidate(); } } } diff --git a/AboutPage/UpdateControlData.cs b/AboutPage/UpdateControlData.cs index 7e2ff0230..23a58426c 100644 --- a/AboutPage/UpdateControlData.cs +++ b/AboutPage/UpdateControlData.cs @@ -69,7 +69,7 @@ namespace MatterHackers.MatterControl } } - public RootedObjectWeakEventHandler UpdateStatusChanged = new RootedObjectWeakEventHandler(); + public RootedObjectEventHandler UpdateStatusChanged = new RootedObjectEventHandler(); static string applicationDataPath = DataStorage.ApplicationDataStorage.Instance.ApplicationUserDataPath; static string updateFileLocation = Path.Combine(applicationDataPath, "updates"); diff --git a/AboutPage/UpdateControlView.cs b/AboutPage/UpdateControlView.cs index 111ef91b9..25354f4d2 100644 --- a/AboutPage/UpdateControlView.cs +++ b/AboutPage/UpdateControlView.cs @@ -40,7 +40,7 @@ using MatterHackers.MatterControl.VersionManagement; namespace MatterHackers.MatterControl { - public class UpdateControlView : FlowLayoutWidget, IReceiveRootedWeakEvent + public class UpdateControlView : FlowLayoutWidget { Button downloadUpdateLink; Button checkUpdateLink; @@ -89,26 +89,13 @@ namespace MatterHackers.MatterControl AddChild(installUpdateLink); } - UpdateControlData.Instance.UpdateStatusChanged.Register(this, "UpdateStatusChanged"); + UpdateControlData.Instance.UpdateStatusChanged.RegisterEvent(UpdateStatusChanged, ref unregisterEvents); MinimumSize = new VectorMath.Vector2(0, 50); UpdateStatusChanged(null, null); } - public void RootedEvent(string eventType, EventArgs e) - { - switch (eventType) - { - case "UpdateStatusChanged": - this.UpdateStatusChanged(null, null); - break; - - default: - throw new NotImplementedException(); - } - } - public void CheckForUpdate(object sender, MouseEventArgs e) { UpdateControlData.Instance.CheckForUpdateUserRequested(); diff --git a/ActionBar/ActionBarPlus.cs b/ActionBar/ActionBarPlus.cs index d33d2882d..9b87c1361 100644 --- a/ActionBar/ActionBarPlus.cs +++ b/ActionBar/ActionBarPlus.cs @@ -17,7 +17,7 @@ using MatterHackers.MatterControl.PrinterControls.PrinterConnections; namespace MatterHackers.MatterControl { - public class ActionBarPlus : FlowLayoutWidget, IReceiveRootedWeakEvent + public class ActionBarPlus : FlowLayoutWidget { QueueDataView queueDataView; @@ -41,21 +41,13 @@ namespace MatterHackers.MatterControl this.Padding = new BorderDouble(bottom: 6); // Add Handlers - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); } - public void RootedEvent(string eventType, EventArgs e) + public void ThemeChanged(object sender, EventArgs e) { - switch (eventType) - { - case "ThemeChanged": - this.BackgroundColor = ActiveTheme.Instance.PrimaryAccentColor; - this.Invalidate(); - break; - - default: - throw new NotImplementedException(); - } + this.BackgroundColor = ActiveTheme.Instance.PrimaryAccentColor; + this.Invalidate(); } public override void OnClosed(EventArgs e) diff --git a/ActionBar/PrintActionRow.cs b/ActionBar/PrintActionRow.cs index 7b897c809..0db8a4119 100644 --- a/ActionBar/PrintActionRow.cs +++ b/ActionBar/PrintActionRow.cs @@ -14,7 +14,7 @@ using MatterHackers.MatterControl.PrinterCommunication; namespace MatterHackers.MatterControl.ActionBar { - class PrintActionRow : ActionRowBase, IReceiveRootedWeakEvent + class PrintActionRow : ActionRowBase { Stopwatch timeSincePrintStarted = new Stopwatch(); @@ -148,7 +148,7 @@ namespace MatterHackers.MatterControl.ActionBar cancelConnectButton.Click += (sender, e) => { UiThread.RunOnIdle(CancelConnectionButton_Click); }; reprintButton.Click += new ButtonBase.ButtonEventHandler(onReprintButton_Click); doneWithCurrentPartButton.Click += new ButtonBase.ButtonEventHandler(onDoneWithCurrentPartButton_Click); - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); } public override void OnClosed(EventArgs e) @@ -160,17 +160,9 @@ namespace MatterHackers.MatterControl.ActionBar base.OnClosed(e); } - public void RootedEvent(string eventType, EventArgs e) + public void ThemeChanged(object sender, EventArgs e) { - switch (eventType) - { - case "ThemeChanged": - this.Invalidate(); - break; - - default: - throw new NotImplementedException(); - } + this.Invalidate(); } void onAddButton_Click(object sender, MouseEventArgs mouseEvent) diff --git a/ActionBar/TemperatureWidgetBase.cs b/ActionBar/TemperatureWidgetBase.cs index 791e8b344..dc7cbcf67 100644 --- a/ActionBar/TemperatureWidgetBase.cs +++ b/ActionBar/TemperatureWidgetBase.cs @@ -35,7 +35,7 @@ using MatterHackers.MatterControl.PrinterCommunication; namespace MatterHackers.MatterControl.ActionBar { - class TemperatureWidgetBase : GuiWidget, IReceiveRootedWeakEvent + class TemperatureWidgetBase : GuiWidget { protected TextWidget indicatorTextWidget; protected TextWidget labelTextWidget; @@ -117,7 +117,7 @@ namespace MatterHackers.MatterControl.ActionBar this.AddChild(container); - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); this.MouseEnterBounds += onEnterBounds; this.MouseLeaveBounds += onLeaveBounds; @@ -133,18 +133,10 @@ namespace MatterHackers.MatterControl.ActionBar base.OnClosed(e); } - public void RootedEvent(string eventType, EventArgs e) + public void ThemeChanged(object sender, EventArgs e) { - switch (eventType) - { - case "ThemeChanged": this.indicatorTextWidget.TextColor = ActiveTheme.Instance.PrimaryAccentColor; this.Invalidate(); - break; - - default: - throw new NotImplementedException(); - } } void onEnterBounds(Object sender, EventArgs e) diff --git a/ApplicationView/FirstPanelTabView.cs b/ApplicationView/FirstPanelTabView.cs index d02ac36ab..a07a8c44c 100644 --- a/ApplicationView/FirstPanelTabView.cs +++ b/ApplicationView/FirstPanelTabView.cs @@ -51,7 +51,7 @@ using MatterHackers.MatterControl.PrintHistory; namespace MatterHackers.MatterControl { - class FirstPanelTabView : TabControl, IReceiveRootedWeakEvent + class FirstPanelTabView : TabControl { public static int firstPanelCurrentTab = 0; @@ -97,26 +97,13 @@ namespace MatterHackers.MatterControl QueueData.Instance.ItemAdded.RegisterEvent(NumQueueItemsChanged, ref unregisterEvents); QueueData.Instance.ItemRemoved.RegisterEvent(NumQueueItemsChanged, ref unregisterEvents); - UpdateControlData.Instance.UpdateStatusChanged.Register(this, "UpdateStatusChanged"); + UpdateControlData.Instance.UpdateStatusChanged.RegisterEvent(SetUpdateNotification, ref unregisterEvents); WidescreenPanel.PreChangePannels.RegisterEvent(SaveCurrentTab, ref unregisterEvents); SelectedTabIndex = firstPanelCurrentTab; } - public void RootedEvent(string eventType, EventArgs e) - { - switch (eventType) - { - case "UpdateStatusChanged": - this.SetUpdateNotification(null, null); - break; - - default: - throw new NotImplementedException(); - } - } - void NumQueueItemsChanged(object sender, EventArgs widgetEvent) { string queueStringBeg = LocalizedString.Get("Queue").ToUpper(); diff --git a/ApplicationView/MainApplicationWidget.cs b/ApplicationView/MainApplicationWidget.cs index 82ec0459e..19c8e8ba8 100644 --- a/ApplicationView/MainApplicationWidget.cs +++ b/ApplicationView/MainApplicationWidget.cs @@ -50,11 +50,11 @@ using MatterHackers.Localizations; namespace MatterHackers.MatterControl { - public class ApplicationWidget : GuiWidget, IReceiveRootedWeakEvent + public class ApplicationWidget : GuiWidget { static ApplicationWidget globalInstance; - public RootedObjectWeakEventHandler ReloadAdvancedControlsPanelTrigger = new RootedObjectWeakEventHandler(); - public RootedObjectWeakEventHandler CloudSyncStatusChanged = new RootedObjectWeakEventHandler(); + public RootedObjectEventHandler ReloadAdvancedControlsPanelTrigger = new RootedObjectEventHandler(); + public RootedObjectEventHandler CloudSyncStatusChanged = new RootedObjectEventHandler(); public SlicePresetsWindow EditMaterialPresetsWindow{ get; set;} public SlicePresetsWindow EditQualityPresetsWindow{ get; set;} @@ -66,20 +66,12 @@ namespace MatterHackers.MatterControl public ApplicationWidget() { Name = "MainSlidePanel"; - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); } - public void RootedEvent(string eventType, EventArgs e) + public void ThemeChanged(object sender, EventArgs e) { - switch (eventType) - { - case "ThemeChanged": - ReloadAll(null, null); - break; - - default: - throw new NotImplementedException(); - } + ReloadAll(null, null); } WidescreenPanel widescreenPanel; diff --git a/ApplicationView/ThirdPanelTabView.cs b/ApplicationView/ThirdPanelTabView.cs index 09ef30b61..97e7d0cd3 100644 --- a/ApplicationView/ThirdPanelTabView.cs +++ b/ApplicationView/ThirdPanelTabView.cs @@ -51,7 +51,7 @@ using MatterHackers.MatterControl.PrintHistory; namespace MatterHackers.MatterControl { - public class ThirdPanelTabView : GuiWidget, IReceiveRootedWeakEvent + public class ThirdPanelTabView : GuiWidget { event EventHandler unregisterEvents; static int lastAdvanceControlsIndex = 0; @@ -77,7 +77,7 @@ namespace MatterHackers.MatterControl AddChild(advancedControls2); WidescreenPanel.PreChangePannels.RegisterEvent(SaveCurrentPanelIndex, ref unregisterEvents); - ApplicationWidget.Instance.ReloadAdvancedControlsPanelTrigger.Register(this, "ReloadAdvancedControlsPanelTrigger"); + ApplicationWidget.Instance.ReloadAdvancedControlsPanelTrigger.RegisterEvent(ReloadAdvancedControlsPanelTrigger, ref unregisterEvents); AnchorAll(); } @@ -91,18 +91,10 @@ namespace MatterHackers.MatterControl base.OnClosed(e); } - public void RootedEvent(string eventType, EventArgs e) - { - switch (eventType) - { - case "ReloadAdvancedControlsPanelTrigger": - UiThread.RunOnIdle(ReloadSliceSettings); - break; - - default: - throw new NotImplementedException(); - } - } + public void ReloadAdvancedControlsPanelTrigger(object sender, EventArgs e) + { + UiThread.RunOnIdle(ReloadSliceSettings); + } static SliceSettingsWidgetUiState sliceSettingsUiState = new SliceSettingsWidgetUiState(); void SaveCurrentPanelIndex(object sender, EventArgs e) diff --git a/ApplicationView/WidescreenPanel.cs b/ApplicationView/WidescreenPanel.cs index 7ac4d0a08..f28241a71 100644 --- a/ApplicationView/WidescreenPanel.cs +++ b/ApplicationView/WidescreenPanel.cs @@ -52,7 +52,7 @@ using MatterHackers.MatterControl.PrinterCommunication; namespace MatterHackers.MatterControl { - public class WidescreenPanel : FlowLayoutWidget, IReceiveRootedWeakEvent + public class WidescreenPanel : FlowLayoutWidget { static bool leftBorderLineHiden; static bool rightBorderLineHiden; @@ -90,21 +90,13 @@ namespace MatterHackers.MatterControl ActivePrinterProfile.Instance.ActivePrinterChanged.RegisterEvent(LoadSettingsOnPrinterChanged, ref unregisterEvents); PrinterConnectionAndCommunication.Instance.ActivePrintItemChanged.RegisterEvent(onActivePrintItemChanged, ref unregisterEvents); - ApplicationWidget.Instance.ReloadAdvancedControlsPanelTrigger.Register(this, "ReloadAdvancedControlsPanelTrigger"); + ApplicationWidget.Instance.ReloadAdvancedControlsPanelTrigger.RegisterEvent(ReloadAdvancedControlsPanelTrigger, ref unregisterEvents); this.BoundsChanged += new EventHandler(onBoundsChanges); } - public void RootedEvent(string eventType, EventArgs e) + public void ReloadAdvancedControlsPanelTrigger(object sender, EventArgs e) { - switch (eventType) - { - case "ReloadAdvancedControlsPanelTrigger": - UiThread.RunOnIdle(ReloadAdvancedControlsPanel); - break; - - default: - throw new NotImplementedException(); - } + UiThread.RunOnIdle(ReloadAdvancedControlsPanel); } public override void OnParentChanged(EventArgs e) diff --git a/ControlElements/ThemeFactory.cs b/ControlElements/ThemeFactory.cs index 8ee26cbea..94a2b95cc 100644 --- a/ControlElements/ThemeFactory.cs +++ b/ControlElements/ThemeFactory.cs @@ -53,7 +53,7 @@ namespace MatterHackers.MatterControl private int defaultThemeIndex = 1; private int activeThemeIndex = -1; - public RootedObjectWeakEventHandler ThemeChanged = new RootedObjectWeakEventHandler(); + public RootedObjectEventHandler ThemeChanged = new RootedObjectEventHandler(); public List AvailableThemes { diff --git a/CustomWidgets/PartThumbnailWidget.cs b/CustomWidgets/PartThumbnailWidget.cs index b48c683f7..018a15295 100644 --- a/CustomWidgets/PartThumbnailWidget.cs +++ b/CustomWidgets/PartThumbnailWidget.cs @@ -45,7 +45,7 @@ using MatterHackers.VectorMath; namespace MatterHackers.MatterControl { - public class PartThumbnailWidget : ClickWidget, IReceiveRootedWeakEvent + public class PartThumbnailWidget : ClickWidget { static BackgroundWorker createThumbnailWorker = null; @@ -131,7 +131,7 @@ namespace MatterHackers.MatterControl this.Click += new ButtonEventHandler(OnMouseClick); this.MouseEnterBounds += new EventHandler(onEnter); this.MouseLeaveBounds += new EventHandler(onExit); - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); } void item_FileHasChanged(object sender, EventArgs e) @@ -326,25 +326,17 @@ namespace MatterHackers.MatterControl createThumbnailWorker = null; } - public void RootedEvent(string eventType, EventArgs e) + public void ThemeChanged(object sender, EventArgs e) { - switch (eventType) - { - case "ThemeChanged": - //Set background color to new theme - this.normalBackgroundColor = ActiveTheme.Instance.PrimaryAccentColor; - this.BackgroundColor = ActiveTheme.Instance.PrimaryAccentColor; + //Set background color to new theme + this.normalBackgroundColor = ActiveTheme.Instance.PrimaryAccentColor; + this.BackgroundColor = ActiveTheme.Instance.PrimaryAccentColor; - //Regenerate thumbnails - // The thumbnail color is currently white and does not change with this change. - // If we eventually change the thumbnail color with the theme we will need to change this. - //this.thumbNailHasBeenRequested = false; - this.Invalidate(); - break; - - default: - throw new NotImplementedException(); - } + //Regenerate thumbnails + // The thumbnail color is currently white and does not change with this change. + // If we eventually change the thumbnail color with the theme we will need to change this. + //this.thumbNailHasBeenRequested = false; + this.Invalidate(); } private void OnMouseClick(object sender, MouseEventArgs e) diff --git a/CustomWidgets/PluginChooserWindow.cs b/CustomWidgets/PluginChooserWindow.cs index ac7990205..20f6bb6ed 100644 --- a/CustomWidgets/PluginChooserWindow.cs +++ b/CustomWidgets/PluginChooserWindow.cs @@ -40,7 +40,7 @@ using MatterHackers.VectorMath; namespace MatterHackers.MatterControl.CreatorPlugins { - public class PluginChooserWindow : SystemWindow, IReceiveRootedWeakEvent + public class PluginChooserWindow : SystemWindow { protected TextImageButtonFactory textImageButtonFactory = new TextImageButtonFactory(); protected TextImageButtonFactory unlockButtonFactory = new TextImageButtonFactory(); @@ -66,20 +66,12 @@ namespace MatterHackers.MatterControl.CreatorPlugins event EventHandler unregisterEvents; protected void AddHandlers() { - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); } - public void RootedEvent(string eventType, EventArgs e) + public void ThemeChanged(object sender, EventArgs e) { - switch (eventType) - { - case "ThemeChanged": - UiThread.RunOnIdle(Reload); - break; - - default: - throw new NotImplementedException(); - } + UiThread.RunOnIdle(Reload); } public void TriggerReload(object sender, EventArgs e) diff --git a/CustomWidgets/PrintProgressBarWidget.cs b/CustomWidgets/PrintProgressBarWidget.cs index 5708f6ca3..f4ec938fd 100644 --- a/CustomWidgets/PrintProgressBarWidget.cs +++ b/CustomWidgets/PrintProgressBarWidget.cs @@ -11,7 +11,7 @@ using MatterHackers.MatterControl.PrinterCommunication; namespace MatterHackers.MatterControl { - public class PrintProgressBar : GuiWidget, IReceiveRootedWeakEvent + public class PrintProgressBar : GuiWidget { double currentPercent = 0; Stopwatch timeSinceLastUpdate = new Stopwatch(); @@ -61,7 +61,7 @@ namespace MatterHackers.MatterControl PrinterConnectionAndCommunication.Instance.WroteLine.RegisterEvent(Instance_WroteLine, ref unregisterEvents); PrinterConnectionAndCommunication.Instance.ActivePrintItemChanged.RegisterEvent(Instance_PrintItemChanged, ref unregisterEvents); PrinterConnectionAndCommunication.Instance.CommunicationStateChanged.RegisterEvent(Instance_PrintItemChanged, ref unregisterEvents); - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); } public override void OnClosed(EventArgs e) @@ -80,19 +80,11 @@ namespace MatterHackers.MatterControl this.BackgroundColor = ActiveTheme.Instance.SecondaryAccentColor; } - public void RootedEvent(string eventType, EventArgs e) + public void ThemeChanged(object sender, EventArgs e) { - switch (eventType) - { - case "ThemeChanged": - //Set background color to new theme - SetThemedColors(); - this.Invalidate(); - break; - - default: - throw new NotImplementedException(); - } + //Set background color to new theme + SetThemedColors(); + this.Invalidate(); } void Instance_PrintItemChanged(object sender, EventArgs e) diff --git a/PartPreviewWindow/PartPreviewMainWindow.cs b/PartPreviewWindow/PartPreviewMainWindow.cs index ebe492e9c..0fcb5e7b5 100644 --- a/PartPreviewWindow/PartPreviewMainWindow.cs +++ b/PartPreviewWindow/PartPreviewMainWindow.cs @@ -41,7 +41,7 @@ using MatterHackers.VectorMath; namespace MatterHackers.MatterControl.PartPreviewWindow { - public class PartPreviewMainWindow : SystemWindow, IReceiveRootedWeakEvent + public class PartPreviewMainWindow : SystemWindow { View3DTransformPart view3DTransformPart; ViewGcodeBasic viewGcodeBasic; @@ -112,22 +112,14 @@ namespace MatterHackers.MatterControl.PartPreviewWindow event EventHandler unregisterEvents; private void AddHandlers() { - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); view3DTransformPart.Closed += (sender, e) => { Close(); }; viewGcodeBasic.Closed += (sender, e) => { Close(); }; } - public void RootedEvent(string eventType, EventArgs e) + public void ThemeChanged(object sender, EventArgs e) { - switch (eventType) - { - case "ThemeChanged": - this.Invalidate(); - break; - - default: - throw new NotImplementedException(); - } + this.Invalidate(); } public override void OnClosed(EventArgs e) diff --git a/PartPreviewWindow/View3DTransfromPart.cs b/PartPreviewWindow/View3DTransfromPart.cs index 4e7910bfb..6a49fd692 100644 --- a/PartPreviewWindow/View3DTransfromPart.cs +++ b/PartPreviewWindow/View3DTransfromPart.cs @@ -60,7 +60,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } } - public class View3DTransformPart : PartPreview3DWidget, IReceiveRootedWeakEvent + public class View3DTransformPart : PartPreview3DWidget { public WindowType windowType { get; set; } @@ -481,23 +481,14 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } } - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); } - public void RootedEvent(string eventType, EventArgs e) + public void ThemeChanged(object sender, EventArgs e) { - switch (eventType) - { - case "ThemeChanged": - processingProgressControl.fillColor = ActiveTheme.Instance.PrimaryAccentColor; - break; - - default: - throw new NotImplementedException(); - } + processingProgressControl.fillColor = ActiveTheme.Instance.PrimaryAccentColor; } - - + void SetEditControlsBasedOnPrinterState(object sender, EventArgs e) { if (windowType == WindowType.Embeded) diff --git a/PartPreviewWindow/ViewControls3D.cs b/PartPreviewWindow/ViewControls3D.cs index 43ece4413..282ed843c 100644 --- a/PartPreviewWindow/ViewControls3D.cs +++ b/PartPreviewWindow/ViewControls3D.cs @@ -12,7 +12,7 @@ using MatterHackers.VectorMath; namespace MatterHackers.MatterControl.PartPreviewWindow { - public class ViewControls3D : FlowLayoutWidget, IReceiveRootedWeakEvent + public class ViewControls3D : FlowLayoutWidget { GuiWidget partSelectSeparator; MeshViewerWidget meshViewerWidget; @@ -96,20 +96,23 @@ namespace MatterHackers.MatterControl.PartPreviewWindow SetMeshViewerDisplayTheme(); partSelectButton.CheckedStateChanged += SetMeshViewerDisplayTheme; - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); } - public void RootedEvent(string eventType, EventArgs e) - { - switch (eventType) - { - case "ThemeChanged": - SetMeshViewerDisplayTheme(null, null); - break; + event EventHandler unregisterEvents; - default: - throw new NotImplementedException(); + public override void OnClosed(EventArgs e) + { + if (unregisterEvents != null) + { + unregisterEvents(this, null); } + base.OnClosed(e); + } + + public void ThemeChanged(object sender, EventArgs e) + { + SetMeshViewerDisplayTheme(null, null); } protected void SetMeshViewerDisplayTheme(object sender = null, EventArgs e = null) diff --git a/PrintHistory/PrintHistoryListItem.cs b/PrintHistory/PrintHistoryListItem.cs index 767f833eb..2740ee9ea 100644 --- a/PrintHistory/PrintHistoryListItem.cs +++ b/PrintHistory/PrintHistoryListItem.cs @@ -54,7 +54,7 @@ namespace MatterHackers.MatterControl.PrintHistory { - public class PrintHistoryListItem : FlowLayoutWidget, IReceiveRootedWeakEvent + public class PrintHistoryListItem : FlowLayoutWidget { public PrintTask printTask; public RGBA_Bytes WidgetTextColor; @@ -240,22 +240,24 @@ namespace MatterHackers.MatterControl.PrintHistory this.Margin = new BorderDouble(6, 0, 6, 6); } + event EventHandler unregisterEvents; void AddHandlers() { - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); } - public void RootedEvent(string eventType, EventArgs e) + public override void OnClosed(EventArgs e) { - switch (eventType) + if (unregisterEvents != null) { - case "ThemeChanged": - this.Invalidate(); - break; - - default: - throw new NotImplementedException(); + unregisterEvents(this, null); } + base.OnClosed(e); + } + + public void ThemeChanged(object sender, EventArgs e) + { + this.Invalidate(); } public override void OnDraw(Graphics2D graphics2D) diff --git a/PrintLibrary/LibraryRowItem.cs b/PrintLibrary/LibraryRowItem.cs index 0408fc2de..22df2e3a2 100644 --- a/PrintLibrary/LibraryRowItem.cs +++ b/PrintLibrary/LibraryRowItem.cs @@ -51,7 +51,7 @@ using MatterHackers.PolygonMesh.Processors; namespace MatterHackers.MatterControl.PrintLibrary { - public class LibraryRowItem : ClickWidget, IReceiveRootedWeakEvent + public class LibraryRowItem : ClickWidget { public PrintItemWrapper printItemWrapper; public RGBA_Bytes WidgetTextColor; @@ -209,7 +209,7 @@ namespace MatterHackers.MatterControl.PrintLibrary event EventHandler unregisterEvents; void AddHandlers() { - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); //this.Click += new ButtonEventHandler(PrintLibraryListItem_Click); viewLink.Click += new ButtonBase.ButtonEventHandler(onViewLinkClick); removeLink.Click += new ButtonBase.ButtonEventHandler(onRemoveLinkClick); @@ -315,17 +315,9 @@ namespace MatterHackers.MatterControl.PrintLibrary } } - public void RootedEvent(string eventType, EventArgs e) + public void ThemeChanged(object sender, EventArgs e) { - switch (eventType) - { - case "ThemeChanged": - this.Invalidate(); - break; - - default: - throw new NotImplementedException(); - } + this.Invalidate(); } public override void OnDraw(Graphics2D graphics2D) diff --git a/PrintQueue/QueueRowItem.cs b/PrintQueue/QueueRowItem.cs index 68bc4ad75..04ad3a5ca 100644 --- a/PrintQueue/QueueRowItem.cs +++ b/PrintQueue/QueueRowItem.cs @@ -50,7 +50,7 @@ using MatterHackers.PolygonMesh; namespace MatterHackers.MatterControl.PrintQueue { - public class QueueRowItem : GuiWidget, IReceiveRootedWeakEvent + public class QueueRowItem : GuiWidget { public PrintItemWrapper PrintItemWrapper { get; set; } public RGBA_Bytes WidgetTextColor; @@ -316,7 +316,7 @@ namespace MatterHackers.MatterControl.PrintQueue event EventHandler unregisterEvents; void AddHandlers() { - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); PrintItemWrapper.SlicingOutputMessage.RegisterEvent(PrintItem_SlicingOutputMessage, ref unregisterEvents); @@ -468,23 +468,15 @@ namespace MatterHackers.MatterControl.PrintQueue }); } - public void RootedEvent(string eventType, EventArgs e) + public void ThemeChanged(object sender, EventArgs e) { - switch (eventType) + if (this.isActivePrint) { - case "ThemeChanged": - if (this.isActivePrint) - { - //Set background and text color to new theme - this.BackgroundColor = ActiveTheme.Instance.PrimaryAccentColor; - this.partLabel.TextColor = RGBA_Bytes.White; - this.partStatus.TextColor = RGBA_Bytes.White; - this.Invalidate(); - } - break; - - default: - throw new NotImplementedException(); + //Set background and text color to new theme + this.BackgroundColor = ActiveTheme.Instance.PrimaryAccentColor; + this.partLabel.TextColor = RGBA_Bytes.White; + this.partStatus.TextColor = RGBA_Bytes.White; + this.Invalidate(); } } diff --git a/PrinterControls/PrinterConnections/BaseConnectionWidget.cs b/PrinterControls/PrinterConnections/BaseConnectionWidget.cs index 811242735..6a25e5955 100644 --- a/PrinterControls/PrinterConnections/BaseConnectionWidget.cs +++ b/PrinterControls/PrinterConnections/BaseConnectionWidget.cs @@ -243,7 +243,7 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections } - public class ConnectionWidgetBase : GuiWidget, IReceiveRootedWeakEvent + public class ConnectionWidgetBase : GuiWidget { protected GuiWidget containerWindowToClose; protected RGBA_Bytes defaultTextColor = ActiveTheme.Instance.PrimaryTextColor; @@ -254,13 +254,14 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections protected ConnectionWindow windowController; public ActionLinkFactory actionLinkFactory = new ActionLinkFactory(); + event EventHandler unregisterEvents; public ConnectionWidgetBase(ConnectionWindow windowController, GuiWidget containerWindowToClose) : base() { this.windowController = windowController; this.containerWindowToClose = containerWindowToClose; - ActiveTheme.Instance.ThemeChanged.Register(this, "ThemeChanged"); + ActiveTheme.Instance.ThemeChanged.RegisterEvent(ThemeChanged, ref unregisterEvents); } public int GetPrinterRecordCount() @@ -268,18 +269,19 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections return Datastore.Instance.RecordCount("Printer"); } - public void RootedEvent(string eventType, EventArgs e) + public void ThemeChanged(object sender, EventArgs e) { - switch (eventType) - { - case "ThemeChanged": - this.linkTextColor = ActiveTheme.Instance.PrimaryAccentColor; - this.Invalidate(); - break; + this.linkTextColor = ActiveTheme.Instance.PrimaryAccentColor; + this.Invalidate(); + } - default: - throw new NotImplementedException(); + public override void OnClosed(EventArgs e) + { + if (unregisterEvents != null) + { + unregisterEvents(this, null); } + base.OnClosed(e); } } } diff --git a/StaticData/Drivers/RRD_RUMBA_TAURINO_DriverSetup.exe b/StaticData/Drivers/RRD_RUMBA_TAURINO_DriverSetup.exe new file mode 100644 index 000000000..ac73ccbfe Binary files /dev/null and b/StaticData/Drivers/RRD_RUMBA_TAURINO_DriverSetup.exe differ