private void OnDockingAutoHiddenGroupHoverStart(object sender, KryptonPageEventArgs e) { // Request the sliding panel slide itself into view with the provided page KryptonDockingAutoHiddenGroup dockingGroup = (KryptonDockingAutoHiddenGroup)sender; _slidePanel.SlideOut(e.Item, dockingGroup.AutoHiddenGroupControl, false); }
private void OnDockingAutoHiddenGroupDisposed(object sender, EventArgs e) { // Cast to correct type and unhook event handlers so garbage collection can occur KryptonDockingAutoHiddenGroup groupElement = (KryptonDockingAutoHiddenGroup)sender; groupElement.PageClicked -= OnDockingAutoHiddenGroupClicked; groupElement.PageHoverStart -= OnDockingAutoHiddenGroupHoverStart; groupElement.PageHoverEnd -= OnDockingAutoHiddenGroupHoverEnd; groupElement.Disposed -= OnDockingAutoHiddenGroupDisposed; // Remove the element from our child collection as it is no longer valid InternalRemove(groupElement); }
/// <summary> /// Perform docking element specific actions for loading a child xml. /// </summary> /// <param name="xmlReader">Xml reader object.</param> /// <param name="pages">Collection of available pages.</param> /// <param name="child">Optional reference to existing child docking element.</param> protected override void LoadChildDockingElement(XmlReader xmlReader, KryptonPageCollection pages, IDockingElement child) { if (child != null) { child.LoadElementFromXml(xmlReader, pages); } else { // Create a new auto hidden group and then reload it KryptonDockingAutoHiddenGroup autoHiddenGroup = AppendAutoHiddenGroup(xmlReader.GetAttribute("N")); autoHiddenGroup.LoadElementFromXml(xmlReader, pages); } }
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 += OnDockingAutoHiddenGroupClicked; groupElement.PageHoverStart += OnDockingAutoHiddenGroupHoverStart; groupElement.PageHoverEnd += OnDockingAutoHiddenGroupHoverEnd; groupElement.Disposed += 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> /// Initialize a new instance of the AutoHiddenGroupEventArgs class. /// </summary> /// <param name="control">Reference to auto hidden group control instance.</param> /// <param name="element">Reference to docking auto hidden group element that is managing the control.</param> public AutoHiddenGroupEventArgs(KryptonAutoHiddenGroup control, KryptonDockingAutoHiddenGroup element) { AutoHiddenGroupControl = control; AutoHiddenGroupElement = element; }