CommandPalette WIP

This commit is contained in:
2023-05-22 09:29:41 +02:00
parent 2fe362ad6e
commit 0ed161c819
59 changed files with 536 additions and 276 deletions

View File

@@ -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>

View File

@@ -0,0 +1,8 @@
namespace FileTime.App.CommandPalette.Models;
public interface ICommandPaletteEntry
{
string Identifier { get; }
string Title { get; }
}

View File

@@ -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; }
}

View File

@@ -0,0 +1,7 @@
namespace FileTime.App.CommandPalette.ViewModels;
public interface ICommandPaletteEntryViewModel
{
string Identifier { get; set; }
string Title { get; set; }
}

View File

@@ -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);
}