private void OnSlidePanelDisposed(object sender, EventArgs e) { // Unhook from events so the control can be garbage collected _slidePanel.SplitterMoveRect -= new EventHandler<SplitterMoveRectMenuArgs>(OnSlidePanelSeparatorMoveRect); _slidePanel.SplitterMoved -= new SplitterEventHandler(OnSlidePanelSeparatorMoved); _slidePanel.SplitterMoving -= new SplitterCancelEventHandler(OnSlidePanelSeparatorMoving); _slidePanel.PageCloseClicked -= new EventHandler<UniqueNameEventArgs>(OnSlidePanelPageCloseClicked); _slidePanel.PageAutoHiddenClicked -= new EventHandler<UniqueNameEventArgs>(OnSlidePanelPageAutoHiddenClicked); _slidePanel.PageDropDownClicked -= new EventHandler<CancelDropDownEventArgs>(OnSlidePanelPageDropDownClicked); _slidePanel.Disposed -= new EventHandler(OnPanelDisposed); // Events are generated from the parent docking manager KryptonDockingManager dockingManager = DockingManager; if (dockingManager != null) { // Only generate the removed event if we have already fired the adding event. if (_panelEventFired) { DockspaceEventArgs dockspaceArgs = new DockspaceEventArgs(_slidePanel.DockspaceControl, null); DockspaceSeparatorEventArgs separatorArgs = new DockspaceSeparatorEventArgs(_slidePanel.SeparatorControl, null); dockingManager.RaiseDockspaceRemoved(dockspaceArgs); dockingManager.RaiseDockspaceSeparatorRemoved(separatorArgs); } } // Make sure the groups panel is also disposed if (!_panel.IsDisposed) _panel.Dispose(); }
private KryptonDockingAutoHiddenGroup CreateAndInsertAutoHiddenGroup(int index, string name) { // Create the new auto hidden group instance and add into our collection KryptonDockingAutoHiddenGroup groupElement = new KryptonDockingAutoHiddenGroup(name, Edge); groupElement.PageClicked += new EventHandler<KryptonPageEventArgs>(OnDockingAutoHiddenGroupClicked); groupElement.PageHoverStart += new EventHandler<KryptonPageEventArgs>(OnDockingAutoHiddenGroupHoverStart); groupElement.PageHoverEnd += new EventHandler<EventArgs>(OnDockingAutoHiddenGroupHoverEnd); groupElement.Disposed += new EventHandler(OnDockingAutoHiddenGroupDisposed); InternalInsert(index, groupElement); // Events are generated from the parent docking manager KryptonDockingManager dockingManager = DockingManager; if (dockingManager != null) { // The hosting panel/sliding panel dockspace/separator are not shown until the first group is added, so only // generate the events for allowing customization of the when there is a chance they will become displayed. if (!_panelEventFired) { AutoHiddenGroupPanelEventArgs panelArgs = new AutoHiddenGroupPanelEventArgs(_panel, this); DockspaceEventArgs dockspaceArgs = new DockspaceEventArgs(_slidePanel.DockspaceControl, null); DockspaceSeparatorEventArgs separatorArgs = new DockspaceSeparatorEventArgs(_slidePanel.SeparatorControl, null); dockingManager.RaiseAutoHiddenGroupPanelAdding(panelArgs); dockingManager.RaiseDockspaceAdding(dockspaceArgs); dockingManager.RaiseDockspaceSeparatorAdding(separatorArgs); _panelEventFired = true; } // Allow the auto hidden group to be customized by event handlers AutoHiddenGroupEventArgs groupArgs = new AutoHiddenGroupEventArgs(groupElement.AutoHiddenGroupControl, groupElement); dockingManager.RaiseAutoHiddenGroupAdding(groupArgs); } // Append to the child collection of groups _panel.Controls.Add(groupElement.AutoHiddenGroupControl); _panel.Controls.SetChildIndex(groupElement.AutoHiddenGroupControl, (_panel.Controls.Count - 1) - index); // When adding the first group the panel will not be visible and so we need to // force the calculation of a new size so it makes itself visible. _panel.PerformLayout(); return groupElement; }
/// <summary> /// Raises the DockspaceSeparatorRemoved event. /// </summary> /// <param name="e">An DockspaceSeparatorEventArgs containing the event args.</param> protected virtual void OnDockspaceSeparatorRemoved(DockspaceSeparatorEventArgs e) { if (DockspaceSeparatorRemoved != null) DockspaceSeparatorRemoved(this, e); }
/// <summary> /// Raises the DockspaceSeparatorAdding event. /// </summary> /// <param name="e">An DockspaceSeparatorEventArgs containing the event args.</param> protected virtual void OnDockspaceSeparatorAdding(DockspaceSeparatorEventArgs e) { if (DockspaceSeparatorAdding != null) DockspaceSeparatorAdding(this, e); }
internal void RaiseDockspaceSeparatorRemoved(DockspaceSeparatorEventArgs e) { OnDockspaceSeparatorRemoved(e); }
internal void RaiseDockspaceSeparatorAdding(DockspaceSeparatorEventArgs e) { OnDockspaceSeparatorAdding(e); }