using Lattice.Core.DragDrop.Models;
using Lattice.Core.Geometry;
namespace Lattice.UI.DragDrop.Abstractions;
///
/// Поставщик визуального представления для перетаскиваемого элемента.
///
public interface IDragVisualProvider
{
///
/// Создает визуальное представление для перетаскивания.
///
/// Информация о перетаскивании.
/// Начальная позиция в экранных координатах.
/// Объект, представляющий визуальное отображение.
object CreateDragVisual(DragInfo dragInfo, Point initialPosition);
///
/// Обновляет позицию визуального представления.
///
/// Визуальное представление.
/// Новая позиция.
void UpdateDragVisualPosition(object dragVisual, Point position);
///
/// Освобождает ресурсы визуального представления.
///
/// Визуальное представление.
void ReleaseDragVisual(object dragVisual);
}