DragAndDrop core

This commit is contained in:
FrigaT
2026-01-18 16:33:35 +03:00
parent 9ea82af329
commit 79bdd8bc62
229 changed files with 21214 additions and 2494 deletions

View File

@@ -0,0 +1,108 @@
namespace Lattice.UI.Docking.Abstractions;
/// <summary>
/// Определяет контракт для темы оформления док-системы.
/// </summary>
public interface IDockTheme
{
/// <summary>
/// Получает имя темы.
/// </summary>
string Name { get; }
/// <summary>
/// Получает или задает основной цвет фона.
/// </summary>
string BackgroundColor { get; set; }
/// <summary>
/// Получает или задает цвет фона панелей.
/// </summary>
string PanelBackgroundColor { get; set; }
/// <summary>
/// Получает или задает цвет фона вкладок.
/// </summary>
string TabBackgroundColor { get; set; }
/// <summary>
/// Получает или задает цвет активной вкладки.
/// </summary>
string ActiveTabBackgroundColor { get; set; }
/// <summary>
/// Получает или задает цвет границ.
/// </summary>
string BorderColor { get; set; }
/// <summary>
/// Получает или задает цвет разделителей.
/// </summary>
string SplitterColor { get; set; }
/// <summary>
/// Получает или задает цвет текста.
/// </summary>
string TextColor { get; set; }
/// <summary>
/// Получает или задает цвет акцента.
/// </summary>
string AccentColor { get; set; }
/// <summary>
/// Получает или задает радиус скругления углов.
/// </summary>
double CornerRadius { get; set; }
/// <summary>
/// Получает или задает толщину границ.
/// </summary>
double BorderThickness { get; set; }
/// <summary>
/// Получает или задает ширину разделителей.
/// </summary>
double SplitterWidth { get; set; }
/// <summary>
/// Применяет тему к системе.
/// </summary>
void Apply();
/// <summary>
/// Сбрасывает тему к значениям по умолчанию.
/// </summary>
void Reset();
}
/// <summary>
/// Аргументы события показа контекстного меню.
/// </summary>
public class ContextMenuShownEventArgs : EventArgs
{
/// <summary>
/// Элемент, для которого показано меню.
/// </summary>
public IDockControl Target { get; }
/// <summary>
/// Координата X меню.
/// </summary>
public double X { get; }
/// <summary>
/// Координата Y меню.
/// </summary>
public double Y { get; }
/// <summary>
/// Инициализирует новый экземпляр класса <see cref="ContextMenuShownEventArgs"/>.
/// </summary>
public ContextMenuShownEventArgs(IDockControl target, double x, double y)
{
Target = target;
X = x;
Y = y;
}
}