public override void AddPane(DockBayBase bay, DockDirection dire)
 {
     var config = bay.GetConfig();
     var pane = bay.Neigh.Children[0];
     AddPane(pane, dire);
     for (int i = config.ChildNode.Count - 1; i > 0; i--)
     {
         var child = (DockPaneConfig)config.ChildNode[i];
         pane.AddPane((DockPaneBase)child.Node, child.Direction, child.SplitRate);
         AddChildPane(child);
     }
     base.AddChildPane(config.ChildNode[0]);
 }
 protected virtual void InitNode(DockBase pane, DockBayBase bay)
 {
     AddEventNeighPanes();
 }
 public abstract void AddPane(DockBayBase bay, DockDirection align);
 protected static void InitEvent(DockBayBase.DockNeigh neigh, DockBayBase node)
 {
     neigh.PaneAdded += new DockEventHandler(node.DockPane_PaneAdded);
 }
            public static DockBayBase.DockNeigh InitializeNeigh(DockBayBase node)
            {
                var neigh = new DockBayBase.DockNeigh();
                neigh.Owner = node;
                DockBaseNeigh.InitializeOf(neigh, node);
                InitEvent(neigh, node);

                return neigh;
            }
 public DockBayLayoutEngine(DockBayBase bay)
 {
     _bay = bay;
     _bay.PaneRemoved += _bay_PaneRemoved;
     _rateOf_paneSize = new Dictionary<Control, ResizeRate>();
 }
 protected override void InitNode(DockBase pane, DockBayBase bay)
 {
     ((DockPaneBase)Node).InitializeNode();
     base.InitNode(pane, bay);
 }
 public static DockPaneBase.DockNeigh InitializeNeigh(DockBase pane, DockBayBase bay)
 {
     DockPaneBase.DockNeigh neigh = new DockPaneBase.DockNeigh();
     InitializeOf(neigh, (DockPaneBase)pane);
     neigh.Owner = bay;
     return neigh;
 }
 public RootDockPane(DockBayBase bay)
 {
     _neigh = DockPaneBase.DockNeigh.InitializeNeigh(this, bay);
     ContentPanel.BackColor = SystemColors.ControlDark;
 }