@ -20,6 +20,8 @@ using System;
@@ -20,6 +20,8 @@ using System;
using System.Collections.ObjectModel ;
using System.Composition ;
using Avalonia.Media ;
using CommunityToolkit.Mvvm.ComponentModel ;
using ICSharpCode.ILSpyX ;
@ -36,12 +38,14 @@ namespace ILSpy.Search
@@ -36,12 +38,14 @@ namespace ILSpy.Search
/// <summary>
/// One entry in the search-mode picker. The <see cref="Mode"/> determines which
/// <c>ICSharpCode.ILSpyX.Search</c> strategy runs when the user types a query;
/// <see cref="Name"/> is the label rendered in the ComboBox.
/// <see cref="Name"/> is the label rendered in the ComboBox and <see cref="Image"/>
/// is the icon shown alongside it (both in the dropdown and in the closed selector).
/// </summary>
public sealed class SearchModeEntry
{
public required SearchMode Mode { get ; init ; }
public required string Name { get ; init ; }
public required IImage Image { get ; init ; }
}
[Export]
@ -71,18 +75,18 @@ namespace ILSpy.Search
@@ -71,18 +75,18 @@ namespace ILSpy.Search
/// strings so users moving between builds see the same labels.
/// </summary>
public SearchModeEntry [ ] SearchModes { get ; } = new [ ] {
new SearchModeEntry { Mode = SearchMode . TypeAndMember , Name = "Types and Members" } ,
new SearchModeEntry { Mode = SearchMode . Type , Name = "Type" } ,
new SearchModeEntry { Mode = SearchMode . Member , Name = "Member" } ,
new SearchModeEntry { Mode = SearchMode . Method , Name = "Method" } ,
new SearchModeEntry { Mode = SearchMode . Field , Name = "Field" } ,
new SearchModeEntry { Mode = SearchMode . Property , Name = "Property" } ,
new SearchModeEntry { Mode = SearchMode . Event , Name = "Event" } ,
new SearchModeEntry { Mode = SearchMode . Literal , Name = "Constant" } ,
new SearchModeEntry { Mode = SearchMode . Token , Name = "Metadata Token" } ,
new SearchModeEntry { Mode = SearchMode . Resource , Name = "Resource" } ,
new SearchModeEntry { Mode = SearchMode . Assembly , Name = "Assembly" } ,
new SearchModeEntry { Mode = SearchMode . Namespace , Name = "Namespace" } ,
new SearchModeEntry { Mode = SearchMode . TypeAndMember , Name = "Types and Members" , Image = Images . Images . Library } ,
new SearchModeEntry { Mode = SearchMode . Type , Name = "Type" , Image = Images . Images . Class } ,
new SearchModeEntry { Mode = SearchMode . Member , Name = "Member" , Image = Images . Images . Property } ,
new SearchModeEntry { Mode = SearchMode . Method , Name = "Method" , Image = Images . Images . Method } ,
new SearchModeEntry { Mode = SearchMode . Field , Name = "Field" , Image = Images . Images . Field } ,
new SearchModeEntry { Mode = SearchMode . Property , Name = "Property" , Image = Images . Images . Property } ,
new SearchModeEntry { Mode = SearchMode . Event , Name = "Event" , Image = Images . Images . Event } ,
new SearchModeEntry { Mode = SearchMode . Literal , Name = "Constant" , Image = Images . Images . Literal } ,
new SearchModeEntry { Mode = SearchMode . Token , Name = "Metadata Token" , Image = Images . Images . Library } ,
new SearchModeEntry { Mode = SearchMode . Resource , Name = "Resource" , Image = Images . Images . Resource } ,
new SearchModeEntry { Mode = SearchMode . Assembly , Name = "Assembly" , Image = Images . Images . Assembly } ,
new SearchModeEntry { Mode = SearchMode . Namespace , Name = "Namespace" , Image = Images . Images . Namespace } ,
} ;
/// <summary>