private void AppendPagesToControl(KryptonPage[] pages)
{
// Make a list of all the 'store' pages being added
List<string> uniqueNames = new List<string>();
foreach (KryptonPage page in pages)
if (page is KryptonStorePage)
uniqueNames.Add(page.UniqueName);
// We only allow a single 'store' page in this docking location at a time
if (uniqueNames.Count > 0)
DockingManager.PropogateAction(DockingPropogateAction.ClearAutoHiddenStoredPages, uniqueNames.ToArray());
// Non-store pages need to be wrapped in a proxy appropriate for the auto hidden control
for (int i = 0; i < pages.Length; i++)
if (!(pages[i] is KryptonStorePage))
pages[i] = new KryptonAutoHiddenProxyPage(pages[i]);
// Add the proxy pages so that we can still use the actual pages instances elsewhere
AutoHiddenGroupControl.Pages.AddRange(pages);
}