PowerToys/Wox.Plugin/Result.cs

98 lines
2.6 KiB
C#
Raw Normal View History

2013-12-19 23:51:20 +08:00
using System;
2013-12-20 19:38:10 +08:00
using System.Collections.Generic;
using System.IO;
2013-12-19 23:51:20 +08:00
2014-10-23 18:39:11 +08:00
namespace Wox.Plugin
{
2014-07-05 23:10:34 +08:00
2014-10-23 18:39:11 +08:00
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;
2014-10-23 18:39:11 +08:00
if (IcoPath.StartsWith("data:"))
{
return IcoPath;
}
return Path.Combine(PluginDirectory, IcoPath);
2014-10-23 18:39:11 +08:00
}
}
/// <summary>
/// return true to hide wox after select result
/// </summary>
public Func<ActionContext, bool> Action { get; set; }
public int Score { get; set; }
/// <summary>
/// Only resulsts that originQuery match with curren query will be displayed in the panel
/// </summary>
2015-01-24 22:34:55 +08:00
internal Query OriginQuery { get; set; }
2014-10-23 18:39:11 +08:00
/// <summary>
2015-01-24 22:34:55 +08:00
/// Plugin directory
2014-10-23 18:39:11 +08:00
/// </summary>
public string PluginDirectory { get; set; }
2014-10-23 18:39:11 +08:00
2015-11-07 05:30:38 +08:00
public override bool Equals(object obj)
2014-10-23 18:39:11 +08:00
{
2015-11-07 05:30:38 +08:00
Result r = obj as Result;
if (r != null)
{
var equality = string.Equals(r.Title, Title) &&
string.Equals(r.SubTitle, SubTitle);
return equality;
2015-11-07 05:30:38 +08:00
}
else
{
return false;
}
}
2014-10-23 18:39:11 +08:00
2015-11-07 05:30:38 +08:00
public override int GetHashCode()
{
var hashcode = (Title?.GetHashCode() ?? 0) ^
(SubTitle?.GetHashCode() ?? 0);
return hashcode;
2014-10-23 18:39:11 +08:00
}
public override string ToString()
{
return Title + SubTitle;
}
[Obsolete("Use IContextMenu instead")]
/// <summary>
/// Context menus associate with this result
/// </summary>
public List<Result> ContextMenu { get; set; }
[Obsolete("Use Object initializers instead")]
public Result(string Titles, string IcoPath, string SubTitle = null)
2014-10-23 18:39:11 +08:00
{
this.Title = Title;
this.IcoPath = IcoPath;
this.SubTitle = SubTitle;
}
public Result() { }
2015-01-24 22:34:55 +08:00
2015-02-04 23:16:41 +08:00
/// <summary>
/// Additional data associate with this result
/// </summary>
public object ContextData { get; set; }
2015-01-24 22:34:55 +08:00
/// <summary>
/// Plugin ID that generate this result
/// </summary>
public string PluginID { get; set; }
2014-10-23 18:39:11 +08:00
}
2013-12-19 23:51:20 +08:00
}