49 lines
1.4 KiB
C#
Raw Normal View History

2025-05-07 18:59:11 +02:00
using PixiEditor.Extensions.Metadata;
using PixiEditor.Extensions.WasmRuntime.Utilities;
namespace PixiEditor.Extensions.WasmRuntime.Api;
internal class DocumentsApi : ApiGroupHandler
{
[ApiFunction("import_file")]
2025-05-16 14:45:31 +02:00
public string ImportFile(string path, bool associatePath = false)
2025-05-07 18:59:11 +02:00
{
PermissionUtility.ThrowIfLacksPermissions(Extension.Metadata, ExtensionPermissions.OpenDocuments, "ImportFile");
string fullPath = ResourcesUtility.ToResourcesFullPath(Extension, path);
2025-05-16 14:45:31 +02:00
string id = string.Empty;
if (File.Exists(fullPath))
2025-05-07 18:59:11 +02:00
{
2025-05-16 14:45:31 +02:00
id = Api.Documents.ImportFile(fullPath, associatePath)?.Id.ToString() ?? string.Empty;
2025-05-07 18:59:11 +02:00
}
2025-05-16 14:45:31 +02:00
return id;
}
[ApiFunction("get_active_document")]
public string GetActiveDocument()
{
var activeDocument = Api.Documents.ActiveDocument;
string id = activeDocument?.Id.ToString() ?? string.Empty;
return id;
}
[ApiFunction("resize_document")]
public void ResizeDocument(string documentId, int width, int height)
{
if (!Guid.TryParse(documentId, out Guid id))
{
throw new ArgumentException("Invalid document ID");
}
var document = Api.Documents.GetDocument(id);
if (document == null)
{
throw new ArgumentException("Document not found");
}
document.Resize(width, height);
2025-05-07 18:59:11 +02:00
}
}