Add clipboard writer
This commit is contained in:
@@ -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>();
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Toolkit.Foundation;
|
||||
|
||||
public interface IClipboardWriter
|
||||
{
|
||||
Task Write<TContent>(TContent content);
|
||||
}
|
||||
Reference in New Issue
Block a user