From 8a9e763fcf59c0908615e8856178963b11691b25 Mon Sep 17 00:00:00 2001 From: Robin Date: Tue, 22 Dec 2015 22:24:39 +0000 Subject: [PATCH] Tabs now invalidated when dock text changed. --- DarkUI/Docking/DarkDockContent.cs | 9 ++++++++- DarkUI/Docking/DarkDockGroup.cs | 9 +++++++++ Example/Forms/MainForm.cs | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/DarkUI/Docking/DarkDockContent.cs b/DarkUI/Docking/DarkDockContent.cs index e769bc1..23bb3e2 100644 --- a/DarkUI/Docking/DarkDockContent.cs +++ b/DarkUI/Docking/DarkDockContent.cs @@ -8,6 +8,12 @@ namespace DarkUI.Docking [ToolboxItem(false)] public class DarkDockContent : UserControl { + #region Event Handler Region + + public event EventHandler DockTextChanged; + + #endregion + #region Field Region private string _dockText; @@ -28,7 +34,8 @@ namespace DarkUI.Docking _dockText = value; - // todo: trigger tabs to re-calculate in parent group + if (DockTextChanged != null) + DockTextChanged(this, null); Invalidate(); } diff --git a/DarkUI/Docking/DarkDockGroup.cs b/DarkUI/Docking/DarkDockGroup.cs index 0a15df3..74665b6 100644 --- a/DarkUI/Docking/DarkDockGroup.cs +++ b/DarkUI/Docking/DarkDockGroup.cs @@ -68,6 +68,8 @@ namespace DarkUI.Docking _contents.Add(dockContent); Controls.Add(dockContent); + dockContent.DockTextChanged += DockContent_DockTextChanged; + _tabs.Add(dockContent, new DarkDockTab(dockContent)); if (VisibleContent == null) @@ -96,6 +98,8 @@ namespace DarkUI.Docking _contents.Remove(dockContent); Controls.Remove(dockContent); + dockContent.DockTextChanged -= DockContent_DockTextChanged; + if (_tabs.ContainsKey(dockContent)) _tabs.Remove(dockContent); @@ -514,6 +518,11 @@ namespace DarkUI.Docking Invalidate(); } + private void DockContent_DockTextChanged(object sender, EventArgs e) + { + Invalidate(); + } + #endregion #region Render Region diff --git a/Example/Forms/MainForm.cs b/Example/Forms/MainForm.cs index 64baf7d..a74d75a 100644 --- a/Example/Forms/MainForm.cs +++ b/Example/Forms/MainForm.cs @@ -213,7 +213,7 @@ namespace Example DockPanel.AddContent(content); } } - + private DarkDockContent GetContentBySerializationKey(string key) { foreach (var window in _toolWindows)