New Breadcrumb user control

New Breadcrumb service
WIP icons and back button behavior
This commit is contained in:
Geoffroy BONNEVILLE
2020-06-09 20:18:17 +02:00
parent d6b17fe696
commit c62ed584dc
17 changed files with 308 additions and 45 deletions

View File

@@ -0,0 +1,12 @@
using System.Collections.Generic;
using ModernKeePass.Application.Common.Models;
namespace ModernKeePass.Application.Common.Interfaces
{
public interface IBreadcrumbService
{
void Push(BreadcrumbItem item);
BreadcrumbItem Pop(int count = 1);
IEnumerable<BreadcrumbItem> GetItems();
}
}

View File

@@ -0,0 +1,12 @@
using ModernKeePass.Domain.Enums;
namespace ModernKeePass.Application.Common.Models
{
public class BreadcrumbItem
{
public string Path { get; set; }
public string Name { get; set; }
public Icon Icon { get; set; }
}
}

View File

@@ -0,0 +1,37 @@
using System.Collections.Generic;
using ModernKeePass.Application.Common.Interfaces;
using ModernKeePass.Application.Common.Models;
namespace ModernKeePass.Application.Common.Services
{
public class BreadcrumbService: IBreadcrumbService
{
private readonly Stack<BreadcrumbItem> _breadcrumb;
public BreadcrumbService()
{
_breadcrumb = new Stack<BreadcrumbItem>();
}
public void Push(BreadcrumbItem item)
{
_breadcrumb.Push(item);
}
public BreadcrumbItem Pop(int count = 1)
{
if (_breadcrumb.Count == 0) return null;
for (var i = 1; i < count; i++)
{
_breadcrumb.Pop();
}
return _breadcrumb.Pop();
}
public IEnumerable<BreadcrumbItem> GetItems()
{
return _breadcrumb;
}
}
}