diff --git a/api/Avalonia.Headless.nupkg.xml b/api/Avalonia.Headless.nupkg.xml
new file mode 100644
index 0000000000..df64d3d757
--- /dev/null
+++ b/api/Avalonia.Headless.nupkg.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ CP0002
+ M:Avalonia.Headless.HeadlessWindowExtensions.DragDrop(Avalonia.Controls.TopLevel,Avalonia.Point,Avalonia.Input.Raw.RawDragEventType,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects,Avalonia.Input.RawInputModifiers)
+ baseline/Avalonia.Headless/lib/net10.0/Avalonia.Headless.dll
+ current/Avalonia.Headless/lib/net10.0/Avalonia.Headless.dll
+
+
+ CP0002
+ M:Avalonia.Headless.HeadlessWindowExtensions.DragDrop(Avalonia.Controls.TopLevel,Avalonia.Point,Avalonia.Input.Raw.RawDragEventType,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects,Avalonia.Input.RawInputModifiers)
+ baseline/Avalonia.Headless/lib/net8.0/Avalonia.Headless.dll
+ current/Avalonia.Headless/lib/net8.0/Avalonia.Headless.dll
+
+
diff --git a/api/Avalonia.nupkg.xml b/api/Avalonia.nupkg.xml
index 4cf1912a2e..75154ef969 100644
--- a/api/Avalonia.nupkg.xml
+++ b/api/Avalonia.nupkg.xml
@@ -43,6 +43,18 @@
baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+ CP0001
+ T:Avalonia.Input.DataObjectExtensions
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0001
+ T:Avalonia.Input.IDataObject
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
CP0001
T:Avalonia.Media.Fonts.FontFamilyLoader
@@ -157,6 +169,18 @@
baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+ CP0001
+ T:Avalonia.Input.DataObjectExtensions
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0001
+ T:Avalonia.Input.IDataObject
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
CP0001
T:Avalonia.Media.Fonts.FontFamilyLoader
@@ -241,6 +265,24 @@
baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+ CP0002
+ F:Avalonia.Input.DataFormats.FileNames
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ F:Avalonia.Input.DataFormats.Files
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ F:Avalonia.Input.DataFormats.Text
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
CP0002
F:Avalonia.Media.DrawingImage.ViewboxProperty
@@ -289,6 +331,48 @@
baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+ CP0002
+ M:Avalonia.Input.DataObject.Contains(System.String)
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.DataObject.Get(System.String)
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.DataObject.GetDataFormats
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.DataObject.Set(System.String,System.Object)
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.DragDrop.DoDragDrop(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects)
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.DragEventArgs.#ctor(Avalonia.Interactivity.RoutedEvent{Avalonia.Input.DragEventArgs},Avalonia.Input.IDataObject,Avalonia.Interactivity.Interactive,Avalonia.Point,Avalonia.Input.KeyModifiers)
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.DragEventArgs.get_Data
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
CP0002
M:Avalonia.Input.IKeyboardNavigationHandler.Move(Avalonia.Input.IInputElement,Avalonia.Input.NavigationDirection,Avalonia.Input.KeyModifiers)
@@ -301,6 +385,60 @@
baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+ CP0002
+ M:Avalonia.Input.Platform.IClipboard.GetDataAsync(System.String)
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Platform.IClipboard.GetFormatsAsync
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Platform.IClipboard.GetTextAsync
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Platform.IClipboard.SetDataObjectAsync(Avalonia.Input.IDataObject)
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Platform.IClipboard.SetTextAsync(System.String)
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Platform.IClipboard.TryGetInProcessDataObjectAsync
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Platform.IPlatformDragSource.DoDragDrop(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects)
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Raw.RawDragEvent.#ctor(Avalonia.Input.Raw.IDragDropDevice,Avalonia.Input.Raw.RawDragEventType,Avalonia.Input.IInputRoot,Avalonia.Point,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects,Avalonia.Input.RawInputModifiers)
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Raw.RawDragEvent.get_Data
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
CP0002
M:Avalonia.Input.TextInput.TextInputMethodClient.ShowInputPanel
@@ -769,6 +907,24 @@
baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+ CP0002
+ F:Avalonia.Input.DataFormats.FileNames
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ F:Avalonia.Input.DataFormats.Files
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ F:Avalonia.Input.DataFormats.Text
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
CP0002
F:Avalonia.Media.DrawingImage.ViewboxProperty
@@ -817,6 +973,48 @@
baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+ CP0002
+ M:Avalonia.Input.DataObject.Contains(System.String)
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.DataObject.Get(System.String)
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.DataObject.GetDataFormats
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.DataObject.Set(System.String,System.Object)
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.DragDrop.DoDragDrop(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects)
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.DragEventArgs.#ctor(Avalonia.Interactivity.RoutedEvent{Avalonia.Input.DragEventArgs},Avalonia.Input.IDataObject,Avalonia.Interactivity.Interactive,Avalonia.Point,Avalonia.Input.KeyModifiers)
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.DragEventArgs.get_Data
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
CP0002
M:Avalonia.Input.IKeyboardNavigationHandler.Move(Avalonia.Input.IInputElement,Avalonia.Input.NavigationDirection,Avalonia.Input.KeyModifiers)
@@ -829,6 +1027,60 @@
baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+ CP0002
+ M:Avalonia.Input.Platform.IClipboard.GetDataAsync(System.String)
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Platform.IClipboard.GetFormatsAsync
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Platform.IClipboard.GetTextAsync
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Platform.IClipboard.SetDataObjectAsync(Avalonia.Input.IDataObject)
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Platform.IClipboard.SetTextAsync(System.String)
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Platform.IClipboard.TryGetInProcessDataObjectAsync
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Platform.IPlatformDragSource.DoDragDrop(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects)
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Raw.RawDragEvent.#ctor(Avalonia.Input.Raw.IDragDropDevice,Avalonia.Input.Raw.RawDragEventType,Avalonia.Input.IInputRoot,Avalonia.Point,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects,Avalonia.Input.RawInputModifiers)
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+
+ CP0002
+ M:Avalonia.Input.Raw.RawDragEvent.get_Data
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
CP0002
M:Avalonia.Input.TextInput.TextInputMethodClient.ShowInputPanel
@@ -1621,6 +1873,12 @@
baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+ CP0008
+ T:Avalonia.Input.DataObject
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
CP0008
T:Avalonia.Media.ImmediateDrawingContext
@@ -1729,6 +1987,12 @@
baseline/Avalonia/lib/net10.0/Avalonia.Vulkan.dll
current/Avalonia/lib/net10.0/Avalonia.Vulkan.dll
+
+ CP0008
+ T:Avalonia.Input.DataObject
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
CP0008
T:Avalonia.Media.ImmediateDrawingContext
@@ -1843,6 +2107,12 @@
baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+ CP0009
+ T:Avalonia.Input.DataObject
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
CP0009
T:Avalonia.Platform.Screen
@@ -1855,6 +2125,12 @@
baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+ CP0009
+ T:Avalonia.Input.DataObject
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
CP0009
T:Avalonia.Platform.Screen
diff --git a/src/Avalonia.Base/Input/DataFormats.cs b/src/Avalonia.Base/Input/DataFormats.cs
index 2fe818f20d..935f03de25 100644
--- a/src/Avalonia.Base/Input/DataFormats.cs
+++ b/src/Avalonia.Base/Input/DataFormats.cs
@@ -1,56 +1,11 @@
using System;
-using System.ComponentModel;
-using Avalonia.Input.Platform;
-namespace Avalonia.Input
-{
- public static class DataFormats
- {
- ///
- /// Dataformat for plaintext
- ///
- [Obsolete($"Use {nameof(DataFormat)}.{nameof(DataFormat.Text)} instead.")]
- public static readonly string Text = nameof(Text);
+namespace Avalonia.Input;
- ///
- /// Dataformat for one or more files.
- ///
- [Obsolete($"Use {nameof(DataFormat)}.{nameof(DataFormat.File)} instead.")]
- public static readonly string Files = nameof(Files);
-
- ///
- /// Dataformat for one or more filenames
- ///
- ///
- /// This data format is supported only on desktop platforms.
- ///
- [Obsolete($"Use {nameof(DataFormat)}.{nameof(DataFormat.File)} instead."), EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly string FileNames = nameof(FileNames);
-
-#pragma warning disable CS0618 // Type or member is obsolete
-
- internal static DataFormat ToDataFormat(string format)
- {
- if (format == Text)
- return DataFormat.Text;
-
- if (format == Files || format == FileNames)
- return DataFormat.File;
-
- return DataFormat.CreateBytesPlatformFormat(format);
- }
-
- internal static string ToString(DataFormat format)
- {
- if (DataFormat.Text.Equals(format))
- return Text;
-
- if (DataFormat.File.Equals(format))
- return Files;
-
- return format.Identifier;
- }
-
-#pragma warning restore CS0618 // Type or member is obsolete
- }
-}
+// TODO13: remove
+///
+/// This class does not do anything anymore.
+/// Use instead.
+///
+[Obsolete($"Use {nameof(DataFormat)} instead", true)]
+public static class DataFormats;
diff --git a/src/Avalonia.Base/Input/DataObject.cs b/src/Avalonia.Base/Input/DataObject.cs
index dc9e2a29af..708ac61e16 100644
--- a/src/Avalonia.Base/Input/DataObject.cs
+++ b/src/Avalonia.Base/Input/DataObject.cs
@@ -1,40 +1,11 @@
using System;
-using System.Collections.Generic;
-namespace Avalonia.Input
-{
- ///
- /// Specific and mutable implementation of the IDataObject interface.
- ///
- [Obsolete($"Use {nameof(DataTransfer)} instead")]
- public class DataObject : IDataObject
- {
- private readonly Dictionary _items = new();
+namespace Avalonia.Input;
- ///
- public bool Contains(string dataFormat)
- {
- return _items.ContainsKey(dataFormat);
- }
-
- ///
- public object? Get(string dataFormat)
- {
- return _items.TryGetValue(dataFormat, out var item) ? item : null;
- }
-
- ///
- public IEnumerable GetDataFormats()
- {
- return _items.Keys;
- }
-
- ///
- /// Sets a value to the internal store of the data object with as a key.
- ///
- public void Set(string dataFormat, object value)
- {
- _items[dataFormat] = value;
- }
- }
-}
+// TODO13: remove
+///
+/// This class does not do anything anymore.
+/// Use instead.
+///
+[Obsolete($"Use {nameof(DataTransfer)} instead", true)]
+public sealed class DataObject;
diff --git a/src/Avalonia.Base/Input/DataObjectExtensions.cs b/src/Avalonia.Base/Input/DataObjectExtensions.cs
deleted file mode 100644
index f361485404..0000000000
--- a/src/Avalonia.Base/Input/DataObjectExtensions.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using Avalonia.Platform.Storage;
-
-#pragma warning disable CS0618 // Type or member is obsolete
-
-namespace Avalonia.Input
-{
- // TODO12: remove
- public static class DataObjectExtensions
- {
- ///
- /// Returns a list of files if the DataObject contains files or filenames.
- /// .
- ///
- ///
- /// Collection of storage items - files or folders. If format isn't available, returns null.
- ///
- public static IEnumerable? GetFiles(this IDataObject dataObject)
- {
- return dataObject.Get(DataFormats.Files) as IEnumerable;
- }
-
- ///
- /// Returns a list of filenames if the DataObject contains filenames.
- ///
- ///
- ///
- /// Collection of file names. If format isn't available, returns null.
- ///
- [System.Obsolete("Use GetFiles, this method is supported only on desktop platforms."), EditorBrowsable(EditorBrowsableState.Never)]
- public static IEnumerable? GetFileNames(this IDataObject dataObject)
- {
- return (dataObject.Get(DataFormats.FileNames) as IEnumerable)
- ?? dataObject.GetFiles()?
- .Select(f => f.TryGetLocalPath())
- .Where(p => !string.IsNullOrEmpty(p))
- .OfType();
- }
-
- ///
- /// Returns the dragged text if the DataObject contains any text.
- ///
- ///
- ///
- /// A text string. If format isn't available, returns null.
- ///
- public static string? GetText(this IDataObject dataObject)
- {
- return dataObject.Get(DataFormats.Text) as string;
- }
- }
-}
diff --git a/src/Avalonia.Base/Input/DataTransferExtensions.cs b/src/Avalonia.Base/Input/DataTransferExtensions.cs
index 517ca51719..a4f74bef3e 100644
--- a/src/Avalonia.Base/Input/DataTransferExtensions.cs
+++ b/src/Avalonia.Base/Input/DataTransferExtensions.cs
@@ -1,7 +1,5 @@
-using System;
-using System.Collections.Generic;
+using System.Collections.Generic;
using System.Linq;
-using Avalonia.Input.Platform;
using Avalonia.Media.Imaging;
using Avalonia.Platform.Storage;
@@ -14,11 +12,6 @@ namespace Avalonia.Input;
///
public static class DataTransferExtensions
{
- [Obsolete]
- internal static IDataObject ToLegacyDataObject(this IDataTransfer dataTransfer)
- => (dataTransfer as DataObjectToDataTransferWrapper)?.DataObject
- ?? new DataTransferToDataObjectWrapper(dataTransfer);
-
///
/// Gets whether a supports a specific format.
///
diff --git a/src/Avalonia.Base/Input/DragDrop.cs b/src/Avalonia.Base/Input/DragDrop.cs
index 551f436854..33f538c443 100644
--- a/src/Avalonia.Base/Input/DragDrop.cs
+++ b/src/Avalonia.Base/Input/DragDrop.cs
@@ -122,16 +122,6 @@ namespace Avalonia.Input
element.RemoveHandler(DropEvent, handler);
}
- ///
- /// Starts a dragging operation with the given and returns the applied drop effect from the target.
- ///
- ///
- [Obsolete($"Use {nameof(DoDragDropAsync)} instead.")]
- public static Task DoDragDrop(PointerEventArgs triggerEvent, IDataObject data, DragDropEffects allowedEffects)
- {
- return DoDragDropAsync(triggerEvent, new DataObjectToDataTransferWrapper(data), allowedEffects);
- }
-
///
/// Starts a dragging operation with the given and returns the applied drop effect from the target.
///
diff --git a/src/Avalonia.Base/Input/DragEventArgs.cs b/src/Avalonia.Base/Input/DragEventArgs.cs
index d4a058e5b6..e68a6138e0 100644
--- a/src/Avalonia.Base/Input/DragEventArgs.cs
+++ b/src/Avalonia.Base/Input/DragEventArgs.cs
@@ -1,5 +1,4 @@
using System;
-using Avalonia.Input.Platform;
using Avalonia.Interactivity;
using Avalonia.Metadata;
@@ -9,16 +8,11 @@ namespace Avalonia.Input
{
private readonly Interactive _target;
private readonly Point _targetLocation;
- [Obsolete] private IDataObject? _legacyDataObject;
public DragDropEffects DragEffects { get; set; }
public IDataTransfer DataTransfer { get; }
- [Obsolete($"Use {nameof(DataTransfer)} instead.")]
- public IDataObject Data
- => _legacyDataObject ??= DataTransfer.ToLegacyDataObject();
-
public KeyModifiers KeyModifiers { get; }
public Point GetPosition(Visual relativeTo)
@@ -31,17 +25,6 @@ namespace Avalonia.Input
return _target.TranslatePoint(_targetLocation, relativeTo) ?? new Point(0, 0);
}
- [Obsolete($"Use the constructor accepting a {nameof(IDataTransfer)} instance instead.")]
- public DragEventArgs(
- RoutedEvent routedEvent,
- IDataObject data,
- Interactive target,
- Point targetLocation,
- KeyModifiers keyModifiers)
- : this(routedEvent, new DataObjectToDataTransferWrapper(data), target, targetLocation, keyModifiers)
- {
- }
-
[Unstable("This constructor might be removed in 12.0. For unit testing, consider using DragDrop.DoDragDrop or IHeadlessWindow.DragDrop.")]
public DragEventArgs(
RoutedEvent routedEvent,
diff --git a/src/Avalonia.Base/Input/IDataObject.cs b/src/Avalonia.Base/Input/IDataObject.cs
deleted file mode 100644
index 560ffc0c02..0000000000
--- a/src/Avalonia.Base/Input/IDataObject.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-namespace Avalonia.Input
-{
- ///
- /// Interface to access information about the data of a drag-and-drop operation.
- ///
- [Obsolete($"Use {nameof(IDataTransfer)} or {nameof(IAsyncDataTransfer)} instead")]
- public interface IDataObject
- {
- ///
- /// Lists all formats which are present in the DataObject.
- ///
- ///
- IEnumerable GetDataFormats();
-
- ///
- /// Checks whether a given DataFormat is present in this object
- ///
- ///
- bool Contains(string dataFormat);
-
- ///
- /// Tries to get the data of the given DataFormat.
- ///
- ///
- /// Object data. If format isn't available, returns null.
- ///
- object? Get(string dataFormat);
- }
-}
diff --git a/src/Avalonia.Base/Input/Platform/Clipboard.cs b/src/Avalonia.Base/Input/Platform/Clipboard.cs
index 0d961cde3e..c1ebf09196 100644
--- a/src/Avalonia.Base/Input/Platform/Clipboard.cs
+++ b/src/Avalonia.Base/Input/Platform/Clipboard.cs
@@ -1,9 +1,4 @@
-using System;
-using System.IO;
-using System.Linq;
-using System.Threading.Tasks;
-using Avalonia.Compatibility;
-using Avalonia.Platform.Storage;
+using System.Threading.Tasks;
namespace Avalonia.Input.Platform;
@@ -15,12 +10,6 @@ internal sealed class Clipboard(IClipboardImpl clipboardImpl) : IClipboard
private readonly IClipboardImpl _clipboardImpl = clipboardImpl;
private IAsyncDataTransfer? _lastDataTransfer;
- Task IClipboard.GetTextAsync()
- => this.TryGetTextAsync();
-
- Task IClipboard.SetTextAsync(string? text)
- => this.SetValueAsync(DataFormat.Text, text);
-
public Task ClearAsync()
{
_lastDataTransfer?.Dispose();
@@ -29,10 +18,6 @@ internal sealed class Clipboard(IClipboardImpl clipboardImpl) : IClipboard
return _clipboardImpl.ClearAsync();
}
- [Obsolete($"Use {nameof(SetDataAsync)} instead.")]
- Task IClipboard.SetDataObjectAsync(IDataObject data)
- => SetDataAsync(new DataObjectToDataTransferWrapper(data));
-
public Task SetDataAsync(IAsyncDataTransfer? dataTransfer)
{
if (dataTransfer is null)
@@ -47,47 +32,9 @@ internal sealed class Clipboard(IClipboardImpl clipboardImpl) : IClipboard
public Task FlushAsync()
=> _clipboardImpl is IFlushableClipboardImpl flushable ? flushable.FlushAsync() : Task.CompletedTask;
- async Task IClipboard.GetFormatsAsync()
- {
- var dataTransfer = await TryGetDataAsync();
- return dataTransfer is null ? [] : dataTransfer.Formats.Select(DataFormats.ToString).ToArray();
- }
-
- [Obsolete($"Use {nameof(TryGetDataAsync)} instead.")]
- async Task