From 051dcf683ef7c52d5963cb71ad49138c19ed4017 Mon Sep 17 00:00:00 2001 From: TheXamlGuy Date: Sat, 6 Jul 2024 20:40:30 +0100 Subject: [PATCH] Add clipboard writer --- Toolkit.Avalonia/ClipboardWriter.cs | 23 +++++++++++++++++++ .../IServiceCollectionExtensions.cs | 4 ++++ Toolkit.Foundation/IClipboardWriter.cs | 6 +++++ 3 files changed, 33 insertions(+) create mode 100644 Toolkit.Avalonia/ClipboardWriter.cs create mode 100644 Toolkit.Foundation/IClipboardWriter.cs diff --git a/Toolkit.Avalonia/ClipboardWriter.cs b/Toolkit.Avalonia/ClipboardWriter.cs new file mode 100644 index 0000000..ec5a220 --- /dev/null +++ b/Toolkit.Avalonia/ClipboardWriter.cs @@ -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 content) + { + if (topLevelProvider.Get() is TopLevel topLevel) + { + if (topLevel.Clipboard is IClipboard clipboard) + { + if (content is string stringContent) + { + await clipboard.SetTextAsync(stringContent); + } + } + } + } +} \ No newline at end of file diff --git a/Toolkit.Avalonia/IServiceCollectionExtensions.cs b/Toolkit.Avalonia/IServiceCollectionExtensions.cs index e1cfe6c..8f97319 100644 --- a/Toolkit.Avalonia/IServiceCollectionExtensions.cs +++ b/Toolkit.Avalonia/IServiceCollectionExtensions.cs @@ -127,6 +127,8 @@ public static class IServiceCollectionExtensions services.AddTransient(); services.AddTransient(); + services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -154,6 +156,8 @@ public static class IServiceCollectionExtensions services.AddTransient(); services.AddTransient(); + services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/Toolkit.Foundation/IClipboardWriter.cs b/Toolkit.Foundation/IClipboardWriter.cs new file mode 100644 index 0000000..331ac4c --- /dev/null +++ b/Toolkit.Foundation/IClipboardWriter.cs @@ -0,0 +1,6 @@ +namespace Toolkit.Foundation; + +public interface IClipboardWriter +{ + Task Write(TContent content); +}