DarkUI.Net5/DarkUI/Docking/DarkDockGroup.cs
Robin 46ac401542 Improved docking
Added dock order. Made groups size properly to the containing region.
Added DarkDockTab.
2015-12-05 13:13:31 +00:00

82 lines
1.9 KiB
C#

using DarkUI.Config;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
namespace DarkUI.Docking
{
[ToolboxItem(false)]
public class DarkDockGroup : Panel
{
#region Field Region
private List<DarkDockContent> _contents;
#endregion
#region Property Region
public DarkDockPanel DockPanel { get; private set; }
public DarkDockRegion DockRegion { get; private set; }
public DarkDockArea DockArea { get; private set; }
public DarkDockContent VisibleContent { get; private set; }
public int Order { get; set; }
public int ContentCount { get { return _contents.Count; } }
#endregion
#region Constructor Region
public DarkDockGroup(DarkDockPanel dockPanel, DarkDockRegion dockRegion, int order)
{
_contents = new List<DarkDockContent>();
DockPanel = dockPanel;
DockRegion = dockRegion;
DockArea = dockRegion.DockArea;
Order = order;
}
#endregion
#region Method Region
public void AddContent(DarkDockContent dockContent)
{
dockContent.DockGroup = this;
dockContent.Dock = DockStyle.Fill;
_contents.Add(dockContent);
Controls.Add(dockContent);
if (VisibleContent == null)
VisibleContent = dockContent;
}
public void RemoveContent(DarkDockContent dockContent)
{
dockContent.DockGroup = null;
_contents.Remove(dockContent);
Controls.Remove(dockContent);
if (VisibleContent == dockContent)
{
VisibleContent = null;
// todo: order?
foreach (var content in _contents)
VisibleContent = content;
}
}
#endregion
}
}