Доработан Docking
This commit is contained in:
@@ -26,7 +26,7 @@ public interface IDockLeafControl : IDockControl
|
||||
/// Получает или задает признак отображения кнопки закрытия на вкладках.
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// true, если кнопки закрытия отображаются; в противном случае — false.
|
||||
/// true, если кнопки закрытия отображаются; в противном случае false.
|
||||
/// </value>
|
||||
bool ShowCloseButtons { get; set; }
|
||||
|
||||
@@ -34,7 +34,7 @@ public interface IDockLeafControl : IDockControl
|
||||
/// Получает или задает признак возможности изменения порядка вкладок.
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// true, если порядок вкладок можно изменять; в противном случае — false.
|
||||
/// true, если порядок вкладок можно изменять; в противном случае false.
|
||||
/// </value>
|
||||
bool CanReorderTabs { get; set; }
|
||||
|
||||
@@ -50,25 +50,39 @@ public interface IDockLeafControl : IDockControl
|
||||
/// Добавляет вкладку в контрол.
|
||||
/// </summary>
|
||||
/// <param name="content">Контент для добавления.</param>
|
||||
/// <exception cref="ArgumentNullException">
|
||||
/// Выбрасывается, если <paramref name="content"/> равен null.
|
||||
/// </exception>
|
||||
void AddContent(IDockContent content);
|
||||
|
||||
/// <summary>
|
||||
/// Удаляет вкладку из контрола.
|
||||
/// </summary>
|
||||
/// <param name="content">Контент для удаления.</param>
|
||||
/// <exception cref="ArgumentNullException">
|
||||
/// Выбрасывается, если <paramref name="content"/> равен null.
|
||||
/// </exception>
|
||||
void RemoveContent(IDockContent content);
|
||||
|
||||
/// <summary>
|
||||
/// Закрывает указанную вкладку.
|
||||
/// </summary>
|
||||
/// <param name="content">Контент для закрытия.</param>
|
||||
/// <returns>true, если вкладка была закрыта; в противном случае — false.</returns>
|
||||
/// <returns>
|
||||
/// true, если вкладка была закрыта; в противном случае false.
|
||||
/// </returns>
|
||||
/// <exception cref="ArgumentNullException">
|
||||
/// Выбрасывается, если <paramref name="content"/> равен null.
|
||||
/// </exception>
|
||||
bool CloseContent(IDockContent content);
|
||||
|
||||
/// <summary>
|
||||
/// Закрывает все вкладки, кроме указанной.
|
||||
/// </summary>
|
||||
/// <param name="exceptContent">Вкладка, которую нужно оставить открытой.</param>
|
||||
/// <exception cref="ArgumentNullException">
|
||||
/// Выбрасывается, если <paramref name="exceptContent"/> равен null.
|
||||
/// </exception>
|
||||
void CloseAllExcept(IDockContent exceptContent);
|
||||
|
||||
/// <summary>
|
||||
@@ -77,39 +91,41 @@ public interface IDockLeafControl : IDockControl
|
||||
void CloseAll();
|
||||
|
||||
/// <summary>
|
||||
/// Событие, возникающее при изменении активной вкладки.
|
||||
/// Происходит при изменении активной вкладки.
|
||||
/// </summary>
|
||||
event EventHandler<ActiveContentChangedEventArgs> ActiveContentChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Событие, возникающее при запросе закрытия вкладки.
|
||||
/// Происходит при запросе закрытия вкладки.
|
||||
/// </summary>
|
||||
event EventHandler<ContentClosingEventArgs> ContentClosing;
|
||||
|
||||
/// <summary>
|
||||
/// Событие, возникающее при изменении порядка вкладок.
|
||||
/// Происходит при изменении порядка вкладок.
|
||||
/// </summary>
|
||||
event EventHandler<TabsReorderedEventArgs> TabsReordered;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Аргументы события изменения активного контента.
|
||||
/// Предоставляет данные для события изменения активного контента.
|
||||
/// </summary>
|
||||
public class ActiveContentChangedEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Предыдущий активный контент.
|
||||
/// Получает предыдущий активный контент.
|
||||
/// </summary>
|
||||
public IDockContent? OldContent { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Новый активный контент.
|
||||
/// Получает новый активный контент.
|
||||
/// </summary>
|
||||
public IDockContent? NewContent { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Инициализирует новый экземпляр класса <see cref="ActiveContentChangedEventArgs"/>.
|
||||
/// </summary>
|
||||
/// <param name="oldContent">Предыдущий активный контент.</param>
|
||||
/// <param name="newContent">Новый активный контент.</param>
|
||||
public ActiveContentChangedEventArgs(IDockContent? oldContent, IDockContent? newContent)
|
||||
{
|
||||
OldContent = oldContent;
|
||||
@@ -118,63 +134,79 @@ public class ActiveContentChangedEventArgs : EventArgs
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Аргументы события закрытия контента.
|
||||
/// Предоставляет данные для события закрытия контента.
|
||||
/// </summary>
|
||||
public class ContentClosingEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Контент, который закрывается.
|
||||
/// Получает контент, который закрывается.
|
||||
/// </summary>
|
||||
public IDockContent Content { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Показывает, можно ли отменить закрытие.
|
||||
/// Получает или задает значение, указывающее, можно ли отменить закрытие.
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// true, если закрытие можно отменить; в противном случае false.
|
||||
/// </value>
|
||||
public bool CanCancel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Получает или задает признак отмены закрытия.
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// true, если закрытие отменено; в противном случае false.
|
||||
/// </value>
|
||||
public bool Cancel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Инициализирует новый экземпляр класса <see cref="ContentClosingEventArgs"/>.
|
||||
/// </summary>
|
||||
/// <param name="content">Контент, который закрывается.</param>
|
||||
/// <exception cref="ArgumentNullException">
|
||||
/// Выбрасывается, если <paramref name="content"/> равен null.
|
||||
/// </exception>
|
||||
public ContentClosingEventArgs(IDockContent content)
|
||||
{
|
||||
Content = content;
|
||||
Content = content ?? throw new ArgumentNullException(nameof(content));
|
||||
CanCancel = true;
|
||||
Cancel = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Аргументы события изменения порядка вкладок.
|
||||
/// Предоставляет данные для события изменения порядка вкладок.
|
||||
/// </summary>
|
||||
public class TabsReorderedEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Старый индекс вкладки.
|
||||
/// Получает старый индекс вкладки.
|
||||
/// </summary>
|
||||
public int OldIndex { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Новый индекс вкладки.
|
||||
/// Получает новый индекс вкладки.
|
||||
/// </summary>
|
||||
public int NewIndex { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Перемещаемый контент.
|
||||
/// Получает перемещаемый контент.
|
||||
/// </summary>
|
||||
public IDockContent Content { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Инициализирует новый экземпляр класса <see cref="TabsReorderedEventArgs"/>.
|
||||
/// </summary>
|
||||
/// <param name="oldIndex">Старый индекс вкладки.</param>
|
||||
/// <param name="newIndex">Новый индекс вкладки.</param>
|
||||
/// <param name="content">Перемещаемый контент.</param>
|
||||
/// <exception cref="ArgumentNullException">
|
||||
/// Выбрасывается, если <paramref name="content"/> равен null.
|
||||
/// </exception>
|
||||
public TabsReorderedEventArgs(int oldIndex, int newIndex, IDockContent content)
|
||||
{
|
||||
OldIndex = oldIndex;
|
||||
NewIndex = newIndex;
|
||||
Content = content;
|
||||
Content = content ?? throw new ArgumentNullException(nameof(content));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user