1 using System;
2 using System.Drawing;
3 using System.Windows.Forms;
4 
5 namespace WeifenLuo.WinFormsUI.Docking
6 {
7     public interface IDockContent : IContextMenuStripHost
8     {
9         DockContentHandler DockHandler { get; }
OnActivated(EventArgs e)10         void OnActivated(EventArgs e);
OnDeactivate(EventArgs e)11         void OnDeactivate(EventArgs e);
12     }
13 
14     public interface IContextMenuStripHost
15     {
ApplyTheme()16         void ApplyTheme();
17     }
18 
19     public interface INestedPanesContainer
20     {
21         DockState DockState { get; }
22         Rectangle DisplayingRectangle { get; }
23         NestedPaneCollection NestedPanes { get; }
24         VisibleNestedPaneCollection VisibleNestedPanes { get; }
25         bool IsFloat { get; }
26     }
27 
28     public interface IDragSource
29     {
30         Control DragControl { get; }
31     }
32 
33     public interface IDockDragSource : IDragSource
34     {
BeginDrag(Point ptMouse)35         Rectangle BeginDrag(Point ptMouse);
EndDrag()36         void EndDrag();
IsDockStateValid(DockState dockState)37         bool IsDockStateValid(DockState dockState);
CanDockTo(DockPane pane)38         bool CanDockTo(DockPane pane);
FloatAt(Rectangle floatWindowBounds)39         void FloatAt(Rectangle floatWindowBounds);
DockTo(DockPane pane, DockStyle dockStyle, int contentIndex)40         void DockTo(DockPane pane, DockStyle dockStyle, int contentIndex);
DockTo(DockPanel panel, DockStyle dockStyle)41         void DockTo(DockPanel panel, DockStyle dockStyle);
42     }
43 
44     public interface ISplitterDragSource : IDragSource
45     {
BeginDrag(Rectangle rectSplitter)46         void BeginDrag(Rectangle rectSplitter);
EndDrag()47         void EndDrag();
48         bool IsVertical { get; }
49         Rectangle DragLimitBounds { get; }
MoveSplitter(int offset)50         void MoveSplitter(int offset);
51     }
52 
53     public interface ISplitterHost : ISplitterDragSource
54     {
55         DockPanel DockPanel { get; }
56         DockState DockState { get; }
57         bool IsDockWindow { get; }
58     }
59 }
60