CommandPalette WIP
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<RootNamespace>FileTime.App.CommandPalette</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\FileTime.App.Core.Abstraction\FileTime.App.Core.Abstraction.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="11.0.0-preview8" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace FileTime.App.CommandPalette.Models;
|
||||
|
||||
public interface ICommandPaletteEntry
|
||||
{
|
||||
string Identifier { get; }
|
||||
string Title { get; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using FileTime.App.CommandPalette.Models;
|
||||
using FileTime.App.CommandPalette.ViewModels;
|
||||
|
||||
namespace FileTime.App.CommandPalette.Services;
|
||||
|
||||
public interface ICommandPaletteService
|
||||
{
|
||||
IObservable<bool> ShowWindow { get; }
|
||||
void OpenCommandPalette();
|
||||
IReadOnlyList<ICommandPaletteEntry> GetCommands();
|
||||
ICommandPaletteViewModel? CurrentModal { get; }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace FileTime.App.CommandPalette.ViewModels;
|
||||
|
||||
public interface ICommandPaletteEntryViewModel
|
||||
{
|
||||
string Identifier { get; set; }
|
||||
string Title { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using Avalonia.Input;
|
||||
using FileTime.App.Core.ViewModels;
|
||||
|
||||
namespace FileTime.App.CommandPalette.ViewModels;
|
||||
|
||||
public interface ICommandPaletteViewModel : IModalViewModel
|
||||
{
|
||||
IObservable<bool> ShowWindow { get; }
|
||||
List<ICommandPaletteEntryViewModel> FilteredMatches { get; }
|
||||
string SearchText { get; set; }
|
||||
ICommandPaletteEntryViewModel SelectedItem { get; set; }
|
||||
void Close();
|
||||
void HandleKeyDown(KeyEventArgs keyEventArgs);
|
||||
}
|
||||
Reference in New Issue
Block a user