diff --git a/Wox.Plugin.SystemPlugins/ControlPanel/ControlPanel.cs b/Wox.Plugin.SystemPlugins/ControlPanel/ControlPanel.cs new file mode 100644 index 0000000000..76b9ef2ef0 --- /dev/null +++ b/Wox.Plugin.SystemPlugins/ControlPanel/ControlPanel.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Wox.Infrastructure; +using Wox.Infrastructure.Storage.UserSettings; +using WindowsControlPanelItems; +using System.Diagnostics; +using System.IO; + +namespace Wox.Plugin.SystemPlugins.ControlPanel +{ + public class ControlPanel : BaseSystemPlugin + { + #region Properties + + private PluginInitContext context; + + public override string Description + { + get + { + return "Search within the Control Panel."; + } + } + + public override string ID + { + get { return "209621585B9B4D81813913C507C058C6"; } + } + + public override string Name { get { return "Control Panel"; } } + + public override string IcoPath { get { return @"Images\ControlPanel.png"; } } + + private List controlPanelItems; + private string iconFolder; + + #endregion Properties + + protected override void InitInternal(PluginInitContext context) + { + this.context = context; + controlPanelItems = WindowsControlPanelItems.List.Create(48); + iconFolder = @"Images\ControlPanelIcons\"; + + foreach (ControlPanelItem item in controlPanelItems) + { + if (!File.Exists(iconFolder + item.ApplicationName + ".ico")) + { + item.Icon.ToBitmap().Save(iconFolder + item.ApplicationName + ".ico"); //Wierd hack to not lose quality when saving as .ico + } + } + } + + protected override List QueryInternal(Query query) + { + List results = new List(); + + foreach (var item in controlPanelItems) + { + if (item.LocalizedString.IndexOf(query.RawQuery, StringComparison.OrdinalIgnoreCase) >= 0 || item.InfoTip.IndexOf(query.RawQuery, StringComparison.OrdinalIgnoreCase) >= 0) + { + results.Add(new Result() + { + Title = item.LocalizedString, + SubTitle = item.InfoTip, + IcoPath = "Images\\ControlPanelIcons\\" + item.ApplicationName + ".ico", //Relative path to plugin directory + Action = e => + { + try + { + Process.Start(item.ExecutablePath); + } + catch (Exception) + { + //Silently Fail for now.. + } + return true; + } + }); + } + } + return results; + } + } +} diff --git a/Wox.Plugin.SystemPlugins/Wox.Plugin.SystemPlugins.csproj b/Wox.Plugin.SystemPlugins/Wox.Plugin.SystemPlugins.csproj index 809178144d..38a88dd562 100644 --- a/Wox.Plugin.SystemPlugins/Wox.Plugin.SystemPlugins.csproj +++ b/Wox.Plugin.SystemPlugins/Wox.Plugin.SystemPlugins.csproj @@ -41,6 +41,9 @@ + + ..\packages\WindowsControlPanelItems.dll.1.0.0\lib\net35\WindowsControlPanelItems.dll + ..\packages\YAMP.1.3.0\lib\net35\YAMP.dll @@ -59,6 +62,7 @@ + FolderPluginSettings.xaml @@ -130,6 +134,9 @@ Designer + + + diff --git a/Wox.Plugin.SystemPlugins/packages.config b/Wox.Plugin.SystemPlugins/packages.config index 7cc723c824..5166ffa5c1 100644 --- a/Wox.Plugin.SystemPlugins/packages.config +++ b/Wox.Plugin.SystemPlugins/packages.config @@ -2,5 +2,6 @@ + \ No newline at end of file diff --git a/Wox/Images/ControlPanel.png b/Wox/Images/ControlPanel.png new file mode 100644 index 0000000000..09c9849c49 Binary files /dev/null and b/Wox/Images/ControlPanel.png differ