Убраны синхронные методы

This commit is contained in:
2026-01-25 01:52:03 +03:00
parent 79bdd8bc62
commit a6ee6fcb36
22 changed files with 1108 additions and 2137 deletions

View File

@@ -1,28 +0,0 @@
namespace Lattice.Core.DragDrop.Abstractions;
/// <summary>
/// Определяет контракт для объектов, которые могут быть источником данных
/// в операции перетаскивания с поддержкой асинхронных операций.
/// </summary>
public interface IAsyncDragSource : IDragSource
{
/// <summary>
/// Определяет, может ли объект начать операцию перетаскивания (асинхронно).
/// </summary>
Task<(bool CanStart, Models.DragInfo? DragInfo)> CanStartDragAsync();
/// <summary>
/// Начинает операцию перетаскивания (асинхронно).
/// </summary>
Task<bool> StartDragAsync(Models.DragInfo dragInfo);
/// <summary>
/// Вызывается при завершении операции перетаскивания (асинхронно).
/// </summary>
Task DragCompletedAsync(Models.DragInfo dragInfo, Enums.DragDropEffects effects);
/// <summary>
/// Вызывается при отмене операции перетаскивания (асинхронно).
/// </summary>
Task DragCancelledAsync(Models.DragInfo dragInfo);
}

View File

@@ -1,28 +0,0 @@
namespace Lattice.Core.DragDrop.Abstractions;
/// <summary>
/// Определяет контракт для объектов, которые могут принимать сбрасываемые данные
/// в операции перетаскивания с поддержкой асинхронных операций.
/// </summary>
public interface IAsyncDropTarget : IDropTarget
{
/// <summary>
/// Определяет, может ли объект принять сбрасываемые данные (асинхронно).
/// </summary>
Task<bool> CanAcceptDropAsync(Models.DropInfo dropInfo);
/// <summary>
/// Вызывается, когда перетаскиваемый объект находится над целью (асинхронно).
/// </summary>
Task DragOverAsync(Models.DropInfo dropInfo);
/// <summary>
/// Вызывается, когда пользователь сбрасывает данные на цель (асинхронно).
/// </summary>
Task DropAsync(Models.DropInfo dropInfo);
/// <summary>
/// Вызывается, когда перетаскиваемый объект покидает область цели (асинхронно).
/// </summary>
Task DragLeaveAsync();
}

View File

@@ -13,18 +13,15 @@ public interface IDragSource
/// <summary>
/// Определяет, может ли объект начать операцию перетаскивания.
/// </summary>
/// <param name="dragInfo">
/// Информация о перетаскивании, которая будет заполнена данными, если операция разрешена.
/// </param>
/// <returns>
/// true, если объект может начать перетаскивание; в противном случае — false.
/// Кортеж, содержащий флаг возможности начала перетаскивания и информацию о перетаскивании.
/// </returns>
/// <remarks>
/// Этот метод вызывается системой перетаскивания для проверки возможности
/// начала операции. Если метод возвращает true, он должен заполнить
/// <paramref name="dragInfo"/> необходимыми данными.
/// DragInfo необходимыми данными.
/// </remarks>
bool CanStartDrag(out Models.DragInfo? dragInfo);
Task<(bool CanStart, Models.DragInfo? DragInfo)> CanStartDragAsync(CancellationToken cancellationToken = default);
/// <summary>
/// Начинает операцию перетаскивания.
@@ -38,7 +35,7 @@ public interface IDragSource
/// Реализация должна подготовить данные для перетаскивания и, возможно,
/// создать визуальное представление перетаскиваемого объекта.
/// </remarks>
bool StartDrag(Models.DragInfo dragInfo);
Task<bool> StartDragAsync(Models.DragInfo dragInfo, CancellationToken cancellationToken = default);
/// <summary>
/// Вызывается при завершении операции перетаскивания.
@@ -50,7 +47,7 @@ public interface IDragSource
/// (успешного или неуспешного). Реализация может выполнить очистку
/// или обновить состояние на основе результата операции.
/// </remarks>
void DragCompleted(Models.DragInfo dragInfo, Enums.DragDropEffects effects);
Task DragCompletedAsync(Models.DragInfo dragInfo, Enums.DragDropEffects effects, CancellationToken cancellationToken = default);
/// <summary>
/// Вызывается при отмене операции перетаскивания.
@@ -60,5 +57,5 @@ public interface IDragSource
/// Этот метод вызывается, когда операция перетаскивания была отменена
/// пользователем (например, нажатием клавиши Escape).
/// </remarks>
void DragCancelled(Models.DragInfo dragInfo);
Task DragCancelledAsync(Models.DragInfo dragInfo, CancellationToken cancellationToken = default);
}

View File

@@ -22,7 +22,7 @@ public interface IDropTarget
/// Реализация должна проверить, совместимы ли данные с целью, и установить
/// предлагаемые эффекты в <paramref name="dropInfo"/>.
/// </remarks>
bool CanAcceptDrop(Models.DropInfo dropInfo);
Task<bool> CanAcceptDropAsync(Models.DropInfo dropInfo, CancellationToken cancellationToken = default);
/// <summary>
/// Вызывается, когда перетаскиваемый объект находится над целью.
@@ -32,7 +32,7 @@ public interface IDropTarget
/// Этот метод вызывается постоянно, пока пользователь перемещает объект над целью.
/// Реализация может обновить визуальную обратную связь или изменить предлагаемые эффекты.
/// </remarks>
void DragOver(Models.DropInfo dropInfo);
Task DragOverAsync(Models.DropInfo dropInfo, CancellationToken cancellationToken = default);
/// <summary>
/// Вызывается, когда пользователь сбрасывает данные на цель.
@@ -42,7 +42,7 @@ public interface IDropTarget
/// Этот метод вызывается, когда пользователь отпускает кнопку мыши над целью.
/// Реализация должна обработать принятие данных и выполнить соответствующее действие.
/// </remarks>
void Drop(Models.DropInfo dropInfo);
Task DropAsync(Models.DropInfo dropInfo, CancellationToken cancellationToken = default);
/// <summary>
/// Вызывается, когда перетаскиваемый объект покидает область цели.
@@ -51,5 +51,5 @@ public interface IDropTarget
/// Этот метод вызывается, когда пользователь перемещает объект за пределы цели.
/// Реализация должна очистить любую визуальную обратную связь, установленную ранее.
/// </remarks>
void DragLeave();
Task DragLeaveAsync(CancellationToken cancellationToken = default);
}