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;
}