protected internal abstract void NeighPane_PaneAdded(object sender, DockEventArgs e);
 protected virtual void OnPaneAdded(DockEventArgs e)
 {
     e.DockPane.Neigh.InitNode(Node, Owner);
     if (PaneAdded != null)
         PaneAdded(this, e);
 }
 protected virtual void OnPaneAdding(DockEventArgs e)
 {
     if (PaneAdding != null)
         PaneAdding(this, e);
 }
 void DockPane_SplitterMoved(object sender, DockEventArgs e)
 {
     var direInfoOf = ((DockPaneBase)sender).Neigh.GetDireInfoOf(e.Align);
     foreach (var pane in direInfoOf.Outers)
         _layoutEngine.Layout(this, new LayoutEventArgs(pane, null));
     foreach (var pane in direInfoOf.Inners)
         _layoutEngine.Layout(this, new LayoutEventArgs(pane, null));
 }
            protected internal override void NeighPane_PaneAdded(object sender, DockEventArgs e)
            {

            }
        void DockPane_PaneAdded(object sender, DockEventArgs e)
        {
            _panes.Add(e.DockPane);
            var node = ((DockBaseNeigh)sender).Node;
            var neigh = (DockPaneBase.DockNeigh)e.DockPane.Neigh;
            neigh.PaneAdded += DockPane_PaneAdded;
            neigh.Removed += DockPane_Removed;
            e.DockPane.SplitterMoved += DockPane_SplitterMoved;
            Controls.Add(e.DockPane);

            OnPaneAdded(new PaneAddedEventArgs(node, e.DockPane, e.Align));
        }
 protected override void OnPaneAdded(DockEventArgs e)
 {
     base.OnPaneAdded(e);
     NeighPane_PaneAdded(this, new DockEventArgs(e.DockPane, e.Align));
 }
            protected internal override void NeighPane_PaneAdded(object sender, DockEventArgs e)
            {
                var node = ((DockBaseNeigh)sender).Node;
                var neigh = node.Neigh;
                var dire = DirectionOfNeighPane(node);
                var direChild = DirectionOfNeighPane(e.DockPane);

                if ((dire == DockDirection.None) && (node != Node))
                    neigh.PaneAdded -= NeighPane_PaneAdded;
                if (node is DockPaneBase)
                {
                    var n = (DockPaneBase.DockNeigh)neigh;
                    n.PaneAdded -= NeighPane_PaneAdded;
                    n.Removed -= NeighPane_Removed;
                    n.Removing -= NeighPane_Removing;
                    PaneAdded -= n.NeighPane_PaneAdded;
                    Removed -= n.NeighPane_Removed;
                    Removing -= n.NeighPane_Removing;
                }

                if (direChild != DockDirection.None)
                {
                    var n = (DockPaneBase.DockNeigh)e.DockPane.Neigh;
                    n.PaneAdded += NeighPane_PaneAdded;
                    n.Removed +=NeighPane_Removed;
                    n.Removing += NeighPane_Removing;
                }
                if (sender != this)
                    OnNeighPaneAdded(new EventArgs());
            }
 protected virtual void OnSplitterMoved(DockEventArgs e)
 {
     if (SplitterMoved != null)
         SplitterMoved(this, e);
 }
 private void DockPane_PaneAdded(object sender, DockEventArgs e)
 {
     SplitterVisible_right = !Neigh.Right.Outers.Contains(Neigh.Owner);
     SplitterVisible_bottom = !Neigh.Bottom.Outers.Contains(Neigh.Owner);
 }