mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-30 14:17:56 +08:00
8ea8db7994
* Removed xaml files, added resx file and removed references for PowerLauncher project * Added resx file for wox.plugin * Moved Calculator resources to resx * Migrated resources for Folder and Indexer plugins * Migrated resources for Program and Shell plugin * Migrated resources for URI and Window Walker * Removed GetTranslation, tests need to be refactored * Removed internationalization classes * Removed Wox.Core.Resource references * Fixed Programs plugin tests * Fixed tests * Removed language xaml files from installer * Added locProject.json files * Fixed resource not found error * Remove unused strings from PowerLauncher * Removed all unused strings * Reverted addition of resx file for Wox.Plugin * Added more resources for Folder plugin * Added resources for Folder and Indexer plugin * Added resources for Program, Shell, Uri and WW plugins * Changed string from Wox to PT Run * managed common files
84 lines
2.6 KiB
C#
84 lines
2.6 KiB
C#
// Copyright (c) Microsoft Corporation
|
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
|
// See the LICENSE file in the project root for more information.
|
|
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Microsoft.Plugin.WindowWalker.Components;
|
|
using Wox.Plugin;
|
|
|
|
namespace Microsoft.Plugin.WindowWalker
|
|
{
|
|
public class Main : IPlugin, IPluginI18n
|
|
{
|
|
private static List<SearchResult> _results = new List<SearchResult>();
|
|
|
|
private string IconPath { get; set; }
|
|
|
|
private PluginInitContext Context { get; set; }
|
|
|
|
static Main()
|
|
{
|
|
SearchController.Instance.OnSearchResultUpdate += SearchResultUpdated;
|
|
OpenWindows.Instance.UpdateOpenWindowsList();
|
|
}
|
|
|
|
public List<Result> Query(Query query)
|
|
{
|
|
SearchController.Instance.UpdateSearchText(query.RawQuery).Wait();
|
|
OpenWindows.Instance.UpdateOpenWindowsList();
|
|
return _results.Select(x => new Result()
|
|
{
|
|
Title = x.Result.Title,
|
|
IcoPath = IconPath,
|
|
SubTitle = Properties.Resources.wox_plugin_windowwalker_running + ": " + x.Result.ProcessName,
|
|
Action = c =>
|
|
{
|
|
x.Result.SwitchToWindow();
|
|
return true;
|
|
},
|
|
}).ToList();
|
|
}
|
|
|
|
public void Init(PluginInitContext context)
|
|
{
|
|
Context = context;
|
|
Context.API.ThemeChanged += OnThemeChanged;
|
|
UpdateIconPath(Context.API.GetCurrentTheme());
|
|
}
|
|
|
|
// Todo : Update with theme based IconPath
|
|
private void UpdateIconPath(Theme theme)
|
|
{
|
|
if (theme == Theme.Light || theme == Theme.HighContrastWhite)
|
|
{
|
|
IconPath = "Images/windowwalker.light.png";
|
|
}
|
|
else
|
|
{
|
|
IconPath = "Images/windowwalker.dark.png";
|
|
}
|
|
}
|
|
|
|
private void OnThemeChanged(Theme currentTheme, Theme newTheme)
|
|
{
|
|
UpdateIconPath(newTheme);
|
|
}
|
|
|
|
public string GetTranslatedPluginTitle()
|
|
{
|
|
return Properties.Resources.wox_plugin_windowwalker_plugin_name;
|
|
}
|
|
|
|
public string GetTranslatedPluginDescription()
|
|
{
|
|
return Properties.Resources.wox_plugin_windowwalker_plugin_description;
|
|
}
|
|
|
|
private static void SearchResultUpdated(object sender, SearchController.SearchResultUpdateEventArgs e)
|
|
{
|
|
_results = SearchController.Instance.SearchMatches;
|
|
}
|
|
}
|
|
}
|