Events for closing and changing text

This commit is contained in:
Robin 2015-12-08 00:00:52 +00:00
parent d8308f6f03
commit a464a213fa

View File

@ -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<DockContentClosingEventArgs> Closing;
public event EventHandler<DockContentEventArgs> Closed;
public event EventHandler<DockTextChangedEventArgs> 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