38 lines
875 B
C#
38 lines
875 B
C#
using AvaloniaEdit.Document;
|
|
|
|
using CommunityToolkit.Mvvm.Input;
|
|
|
|
using Dock.Model.Controls;
|
|
|
|
using InkForge.Desktop.Models;
|
|
using InkForge.Desktop.ViewModels.Documents;
|
|
|
|
namespace InkForge.Desktop.Managers;
|
|
|
|
public partial class DocumentManager
|
|
{
|
|
private readonly InkForgeFactory _factory;
|
|
|
|
public IDocumentDock Dock { get; }
|
|
|
|
public DocumentManager(NoteStore noteStore, InkForgeFactory factory)
|
|
{
|
|
_factory = factory;
|
|
Dock = factory.CreateDocumentDock();
|
|
Dock.IsCollapsable = false;
|
|
Dock.CanCreateDocument = true;
|
|
Dock.CreateDocument = CreateDocumentCommand;
|
|
}
|
|
|
|
[RelayCommand]
|
|
private void OnCreateDocument()
|
|
{
|
|
NoteEditDocumentViewModel editViewModel = new(new()
|
|
{
|
|
Name = "Untitled Note",
|
|
}, new());
|
|
_factory.AddDockable(Dock, editViewModel);
|
|
_factory.SetActiveDockable(editViewModel);
|
|
_factory.SetFocusedDockable(Dock, editViewModel);
|
|
}
|
|
}
|