From a464a213fa4e16e2b5688e3cc6108405afc24349 Mon Sep 17 00:00:00 2001 From: Robin Date: Tue, 8 Dec 2015 00:00:52 +0000 Subject: [PATCH] Events for closing and changing text --- DarkUI/Docking/DarkDockContent.cs | 54 ++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/DarkUI/Docking/DarkDockContent.cs b/DarkUI/Docking/DarkDockContent.cs index 45f0c08..08b85f6 100644 --- a/DarkUI/Docking/DarkDockContent.cs +++ b/DarkUI/Docking/DarkDockContent.cs @@ -15,9 +15,45 @@ namespace DarkUI.Docking } } + public class DockContentClosingEventArgs : EventArgs + { + public DarkDockContent Content { get; private set; } + + public bool Cancel { get; set; } + + public DockContentClosingEventArgs(DarkDockContent content) + { + Content = content; + } + } + + public class DockTextChangedEventArgs : EventArgs + { + public DarkDockContent Content { get; private set; } + + public string OldText { get; private set; } + + public string NewText { get; private set; } + + public DockTextChangedEventArgs(DarkDockContent content, string oldText, string newText) + { + Content = content; + OldText = oldText; + NewText = newText; + } + } + [ToolboxItem(false)] public class DarkDockContent : UserControl { + #region Event Region + + public event EventHandler Closing; + public event EventHandler Closed; + public event EventHandler DockHeaderChanged; + + #endregion + #region Field Region private string _dockText; @@ -34,9 +70,14 @@ namespace DarkUI.Docking get { return _dockText; } set { + var oldText = _dockText; + _dockText = value; + + if (DockHeaderChanged != null) + DockHeaderChanged(this, new DockTextChangedEventArgs(this, oldText, _dockText)); + Invalidate(); - // TODO: raise event for re-sizing parent tabs } } @@ -82,8 +123,19 @@ namespace DarkUI.Docking public virtual void Close() { + var e = new DockContentClosingEventArgs(this); + + if (Closing != null) + Closing(this, e); + + if (e.Cancel) + return; + if (DockPanel != null) DockPanel.RemoveContent(this); + + if (Closed != null) + Closed(this, new DockContentEventArgs(this)); } #endregion