using System; using System.Collections; using System.Collections.Generic; using System.IO; namespace Wox.Plugin { public class Result { public string Title { get; set; } public string SubTitle { get; set; } public string IcoPath { get; set; } public string FullIcoPath { get { if (string.IsNullOrEmpty(IcoPath)) return string.Empty; if (IcoPath.StartsWith("data:")) { return IcoPath; } return Path.Combine(PluginDirectory, IcoPath); } } /// /// return true to hide wox after select result /// public Func Action { get; set; } public int Score { get; set; } /// /// Only resulsts that originQuery match with curren query will be displayed in the panel /// internal Query OriginQuery { get; set; } /// /// Plugin directory /// public string PluginDirectory { get; internal set; } public new bool Equals(object obj) { if (obj == null || !(obj is Result)) return false; Result r = (Result)obj; return r.Title == Title && r.SubTitle == SubTitle; } public override string ToString() { return Title + SubTitle; } public Result() { } public Result(string Title = null, string IcoPath = null, string SubTitle = null) { this.Title = Title; this.IcoPath = IcoPath; this.SubTitle = SubTitle; } /// /// Context menus associate with this result /// public List ContextMenu { get; set; } /// /// Additional data associate with this result /// public object ContextData { get; set; } /// /// Plugin ID that generate this result /// public string PluginID { get; set; } } }