DragAndDrop core
This commit is contained in:
41
Lattice.UI.DragDrop/Abstractions/IDragDropHost.cs
Normal file
41
Lattice.UI.DragDrop/Abstractions/IDragDropHost.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using Lattice.Core.Geometry;
|
||||
|
||||
namespace Lattice.UI.DragDrop.Abstractions;
|
||||
|
||||
/// <summary>
|
||||
/// Хост для отображения визуальных элементов перетаскивания.
|
||||
/// </summary>
|
||||
public interface IDragDropHost
|
||||
{
|
||||
/// <summary>
|
||||
/// Показывает визуальное представление перетаскивания.
|
||||
/// </summary>
|
||||
/// <param name="dragVisual">Визуальное представление.</param>
|
||||
/// <param name="position">Начальная позиция.</param>
|
||||
void ShowDragVisual(object dragVisual, Point position);
|
||||
|
||||
/// <summary>
|
||||
/// Обновляет позицию визуального представления перетаскивания.
|
||||
/// </summary>
|
||||
/// <param name="dragVisual">Визуальное представление.</param>
|
||||
/// <param name="position">Новая позиция.</param>
|
||||
void UpdateDragVisualPosition(object dragVisual, Point position);
|
||||
|
||||
/// <summary>
|
||||
/// Скрывает визуальное представление перетаскивания.
|
||||
/// </summary>
|
||||
/// <param name="dragVisual">Визуальное представление.</param>
|
||||
void HideDragVisual(object dragVisual);
|
||||
|
||||
/// <summary>
|
||||
/// Показывает визуальную обратную связь для цели сброса.
|
||||
/// </summary>
|
||||
/// <param name="adorner">Элемент обратной связи.</param>
|
||||
void ShowDropAdorner(IDropVisualAdorner adorner);
|
||||
|
||||
/// <summary>
|
||||
/// Скрывает визуальную обратную связь для цели сброса.
|
||||
/// </summary>
|
||||
/// <param name="adorner">Элемент обратной связи.</param>
|
||||
void HideDropAdorner(IDropVisualAdorner adorner);
|
||||
}
|
||||
31
Lattice.UI.DragDrop/Abstractions/IDragVisualProvider.cs
Normal file
31
Lattice.UI.DragDrop/Abstractions/IDragVisualProvider.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using Lattice.Core.DragDrop.Models;
|
||||
using Lattice.Core.Geometry;
|
||||
|
||||
namespace Lattice.UI.DragDrop.Abstractions;
|
||||
|
||||
/// <summary>
|
||||
/// Поставщик визуального представления для перетаскиваемого элемента.
|
||||
/// </summary>
|
||||
public interface IDragVisualProvider
|
||||
{
|
||||
/// <summary>
|
||||
/// Создает визуальное представление для перетаскивания.
|
||||
/// </summary>
|
||||
/// <param name="dragInfo">Информация о перетаскивании.</param>
|
||||
/// <param name="initialPosition">Начальная позиция в экранных координатах.</param>
|
||||
/// <returns>Объект, представляющий визуальное отображение.</returns>
|
||||
object CreateDragVisual(DragInfo dragInfo, Point initialPosition);
|
||||
|
||||
/// <summary>
|
||||
/// Обновляет позицию визуального представления.
|
||||
/// </summary>
|
||||
/// <param name="dragVisual">Визуальное представление.</param>
|
||||
/// <param name="position">Новая позиция.</param>
|
||||
void UpdateDragVisualPosition(object dragVisual, Point position);
|
||||
|
||||
/// <summary>
|
||||
/// Освобождает ресурсы визуального представления.
|
||||
/// </summary>
|
||||
/// <param name="dragVisual">Визуальное представление.</param>
|
||||
void ReleaseDragVisual(object dragVisual);
|
||||
}
|
||||
28
Lattice.UI.DragDrop/Abstractions/IDropVisualAdorner.cs
Normal file
28
Lattice.UI.DragDrop/Abstractions/IDropVisualAdorner.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using Lattice.Core.DragDrop.Models;
|
||||
using Lattice.Core.Geometry;
|
||||
|
||||
namespace Lattice.UI.DragDrop.Abstractions;
|
||||
|
||||
/// <summary>
|
||||
/// Визуальный элемент, показывающий обратную связь при наведении на цель сброса.
|
||||
/// </summary>
|
||||
public interface IDropVisualAdorner
|
||||
{
|
||||
/// <summary>
|
||||
/// Показывает визуальную обратную связь для цели сброса.
|
||||
/// </summary>
|
||||
/// <param name="dropInfo">Информация о сбросе.</param>
|
||||
/// <param name="targetBounds">Границы цели.</param>
|
||||
void Show(DropInfo dropInfo, Rect targetBounds);
|
||||
|
||||
/// <summary>
|
||||
/// Обновляет позицию и состояние визуальной обратной связи.
|
||||
/// </summary>
|
||||
/// <param name="dropInfo">Информация о сбросе.</param>
|
||||
void Update(DropInfo dropInfo);
|
||||
|
||||
/// <summary>
|
||||
/// Скрывает визуальную обратную связь.
|
||||
/// </summary>
|
||||
void Hide();
|
||||
}
|
||||
Reference in New Issue
Block a user