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