mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-15 03:59:15 +08:00
52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using Wox.Infrastructure.Storage.UserSettings;
|
|
|
|
namespace Wox.Plugin.SystemPlugins
|
|
{
|
|
|
|
public abstract class BaseSystemPlugin : ISystemPlugin
|
|
{
|
|
public string PluginDirectory { get; set; }
|
|
|
|
public abstract string ID { get; }
|
|
public virtual string Name { get { return "System workflow"; } }
|
|
public virtual string Description { get { return "System workflow"; } }
|
|
public virtual string IcoPath { get { return null; } }
|
|
|
|
public string FullIcoPath
|
|
{
|
|
get
|
|
{
|
|
if (string.IsNullOrEmpty(IcoPath)) return string.Empty;
|
|
if (IcoPath.StartsWith("data:"))
|
|
{
|
|
return IcoPath;
|
|
}
|
|
|
|
return Path.Combine(PluginDirectory, IcoPath);
|
|
}
|
|
}
|
|
|
|
protected abstract List<Result> QueryInternal(Query query);
|
|
|
|
protected abstract void InitInternal(PluginInitContext context);
|
|
|
|
public List<Result> Query(Query query)
|
|
{
|
|
if (string.IsNullOrEmpty(query.RawQuery)) return new List<Result>();
|
|
var customizedPluginConfig = UserSettingStorage.Instance.CustomizedPluginConfigs.FirstOrDefault(o => o.ID == ID);
|
|
if (customizedPluginConfig != null && customizedPluginConfig.Disabled)
|
|
{
|
|
return new List<Result>();
|
|
}
|
|
return QueryInternal(query);
|
|
}
|
|
|
|
public void Init(PluginInitContext context)
|
|
{
|
|
InitInternal(context);
|
|
}
|
|
}
|
|
} |