mirror of
https://github.com/colhountech/DarkUI.Net5.git
synced 2025-07-02 07:09:27 +03:00
Added ActiveDocument and GetContents
This commit is contained in:
parent
a464a213fa
commit
b676410b3f
@ -15,45 +15,9 @@ 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;
|
||||
@ -74,8 +38,7 @@ namespace DarkUI.Docking
|
||||
|
||||
_dockText = value;
|
||||
|
||||
if (DockHeaderChanged != null)
|
||||
DockHeaderChanged(this, new DockTextChangedEventArgs(this, oldText, _dockText));
|
||||
// todo: trigger tabs to re-calculate in parent group
|
||||
|
||||
Invalidate();
|
||||
}
|
||||
@ -123,19 +86,8 @@ 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
|
||||
|
@ -131,6 +131,11 @@ namespace DarkUI.Docking
|
||||
UpdateTabArea();
|
||||
}
|
||||
|
||||
public List<DarkDockContent> GetContents()
|
||||
{
|
||||
return _contents.ToList();
|
||||
}
|
||||
|
||||
private void UpdateTabArea()
|
||||
{
|
||||
if (DockArea == DarkDockArea.Document)
|
||||
@ -292,6 +297,9 @@ namespace DarkUI.Docking
|
||||
if (DockArea != DarkDockArea.Document)
|
||||
return;
|
||||
|
||||
if (VisibleContent == null)
|
||||
return;
|
||||
|
||||
var width = ClientRectangle.Width - Padding.Horizontal - _tabArea.DropdownRectangle.Width;
|
||||
var offsetArea = new Rectangle(Padding.Left, 0, width, 0);
|
||||
|
||||
|
@ -40,7 +40,7 @@ namespace DarkUI.Docking
|
||||
public DarkDockContent ActiveContent
|
||||
{
|
||||
get { return _activeContent; }
|
||||
internal set
|
||||
set
|
||||
{
|
||||
// Don't let content visibility changes re-trigger event
|
||||
if (_switchingContent)
|
||||
@ -71,6 +71,16 @@ namespace DarkUI.Docking
|
||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
||||
public DarkDockGroup ActiveGroup { get; internal set; }
|
||||
|
||||
[Browsable(false)]
|
||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
||||
public DarkDockContent ActiveDocument
|
||||
{
|
||||
get
|
||||
{
|
||||
return _regions[DarkDockArea.Document].ActiveDocument;
|
||||
}
|
||||
}
|
||||
|
||||
[Browsable(false)]
|
||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
||||
public IMessageFilter MessageFilter { get; private set; }
|
||||
@ -154,6 +164,11 @@ namespace DarkUI.Docking
|
||||
return _contents.Contains(dockContent);
|
||||
}
|
||||
|
||||
public List<DarkDockContent> GetDocuments()
|
||||
{
|
||||
return _regions[DarkDockArea.Document].GetContents();
|
||||
}
|
||||
|
||||
private void CreateRegions()
|
||||
{
|
||||
var documentRegion = new DarkDockRegion(this, DarkDockArea.Document);
|
||||
|
@ -26,6 +26,17 @@ namespace DarkUI.Docking
|
||||
|
||||
public DarkDockArea DockArea { get; private set; }
|
||||
|
||||
public DarkDockContent ActiveDocument
|
||||
{
|
||||
get
|
||||
{
|
||||
if (DockArea != DarkDockArea.Document || _groups.Count == 0)
|
||||
return null;
|
||||
|
||||
return _groups[0].VisibleContent;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructor Region
|
||||
@ -90,6 +101,16 @@ namespace DarkUI.Docking
|
||||
PositionGroups();
|
||||
}
|
||||
|
||||
public List<DarkDockContent> GetContents()
|
||||
{
|
||||
var result = new List<DarkDockContent>();
|
||||
|
||||
foreach (var group in _groups)
|
||||
result.AddRange(group.GetContents());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private DarkDockGroup CreateGroup()
|
||||
{
|
||||
var order = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user