Add clipboard writer

This commit is contained in:
TheXamlGuy
2024-07-06 20:40:30 +01:00
parent 02c7c03251
commit 051dcf683e
3 changed files with 33 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
using Avalonia.Controls;
using Avalonia.Input.Platform;
using Toolkit.Foundation;
namespace Toolkit.Avalonia;
public class ClipboardWriter(ITopLevelProvider topLevelProvider) :
IClipboardWriter
{
public async Task Write<TContent>(TContent content)
{
if (topLevelProvider.Get() is TopLevel topLevel)
{
if (topLevel.Clipboard is IClipboard clipboard)
{
if (content is string stringContent)
{
await clipboard.SetTextAsync(stringContent);
}
}
}
}
}
@@ -127,6 +127,8 @@ public static class IServiceCollectionExtensions
services.AddTransient<ITopLevelProvider, TopLevelProvider>();
services.AddTransient<IFileProvider, FileProvider>();
services.AddTransient<IClipboardWriter, ClipboardWriter>();
services.AddTransient<IImageReader, ImageReader>();
services.AddTransient<IImageWriter, ImageWriter>();
services.AddTransient<IImageResizer, ImageResizer>();
@@ -154,6 +156,8 @@ public static class IServiceCollectionExtensions
services.AddTransient<ITopLevelProvider, TopLevelProvider>();
services.AddTransient<IFileProvider, FileProvider>();
services.AddTransient<IClipboardWriter, ClipboardWriter>();
services.AddTransient<IImageReader, ImageReader>();
services.AddTransient<IImageWriter, ImageWriter>();
services.AddTransient<IImageResizer, ImageResizer>();
+6
View File
@@ -0,0 +1,6 @@
namespace Toolkit.Foundation;
public interface IClipboardWriter
{
Task Write<TContent>(TContent content);
}