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