From e6f263c83c3b92d7d5dcb3a691f379e0e8f28983 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Tue, 21 Nov 2023 15:00:04 +0100 Subject: [PATCH] Improve loading of built in plugins --- src/DesktopMagic/MainWindow.xaml.cs | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/src/DesktopMagic/MainWindow.xaml.cs b/src/DesktopMagic/MainWindow.xaml.cs index 39f34b9..cee5e30 100644 --- a/src/DesktopMagic/MainWindow.xaml.cs +++ b/src/DesktopMagic/MainWindow.xaml.cs @@ -34,6 +34,12 @@ namespace DesktopMagic public static List Windows { get; } = []; public static List WindowNames { get; } = []; + private Dictionary builtInPlugins = new() + { + {"Music Visualizer", typeof(MusicVisualizerPlugin)}, + {"Time", typeof(TimePlugin)}, + {"Date", typeof(DatePlugin)} + }; internal static bool EditMode { get; set; } = false; private DesktopMagicSettings Settings @@ -107,9 +113,7 @@ namespace DesktopMagic { pluginNames.Clear(); - pluginNames.Add("MusicVisualizer"); - pluginNames.Add("Time"); - pluginNames.Add("Date"); + pluginNames.AddRange(builtInPlugins.Keys); string pluginsPath = App.ApplicationDataPath + "\\Plugins"; @@ -178,23 +182,9 @@ namespace DesktopMagic PluginWindow window; - if (pluginName == "MusicVisualizer") + if (builtInPlugins.TryGetValue(pluginName, out Type? pluginType)) { - window = new PluginWindow(new MusicVisualizerPlugin(), pluginName, pluginSettings) - { - Title = pluginName - }; - } - else if (pluginName == "Time") - { - window = new PluginWindow(new TimePlugin(), pluginName, pluginSettings) - { - Title = pluginName - }; - } - else if (pluginName == "Date") - { - window = new PluginWindow(new DatePlugin(), pluginName, pluginSettings) + window = new PluginWindow((DesktopMagicPluginAPI.Plugin)Activator.CreateInstance(pluginType)!, pluginName, pluginSettings) { Title = pluginName };