/// <summary>
 /// Hide all display elements of all pages.
 /// </summary>
 public void HideAllPages()
 {
     using (DockingMultiUpdate update = new DockingMultiUpdate(this))
     {
         base.PropogateAction(DockingPropogateAction.HideAllPages, (string[])null);
     }
 }
        /// <summary>
        /// Remove the named pages.
        /// </summary>
        /// <param name="uniqueNames">Array of unique names of the pages that should be removed.</param>
        /// <param name="disposePage">Should the page be disposed when removed.</param>
        public void RemovePages(string[] uniqueNames, bool disposePage)
        {
            // Cannot remove a null reference
            if (uniqueNames == null)
            {
                throw new ArgumentNullException(nameof(uniqueNames));
            }

            if (uniqueNames.Length > 0)
            {
                // Cannot remove a null or zero length unique name
                foreach (string uniqueName in uniqueNames)
                {
                    if (uniqueName == null)
                    {
                        throw new ArgumentNullException(nameof(uniqueNames), @"uniqueNames array contains a null string reference");
                    }

                    if (uniqueName.Length == 0)
                    {
                        throw new ArgumentException(@"uniqueNames array contains a zero length string", nameof(uniqueNames));
                    }
                }

                // Remove page details from all parts of the hierarchy
                using (DockingMultiUpdate update = new DockingMultiUpdate(this))
                {
                    base.PropogateAction(disposePage ? DockingPropogateAction.RemoveAndDisposePages : DockingPropogateAction.RemovePages, uniqueNames);
                }
            }
        }
        /// <summary>
        /// Hide all display elements of the provided pages.
        /// </summary>
        /// <param name="uniqueNames">Array of unique names of the pages that should be hidden.</param>
        public void HidePages(string[] uniqueNames)
        {
            // Cannot hide a null reference
            if (uniqueNames == null)
            {
                throw new ArgumentNullException(nameof(uniqueNames));
            }

            if (uniqueNames.Length > 0)
            {
                // Cannot hide a null or zero length unique name
                foreach (string uniqueName in uniqueNames)
                {
                    if (uniqueName == null)
                    {
                        throw new ArgumentNullException(nameof(uniqueNames), @"uniqueNames array contains a null string reference");
                    }

                    if (uniqueName.Length == 0)
                    {
                        throw new ArgumentException(@"uniqueNames array contains a zero length string", nameof(uniqueNames));
                    }
                }

                using (DockingMultiUpdate update = new DockingMultiUpdate(this))
                {
                    base.PropogateAction(DockingPropogateAction.HidePages, uniqueNames);
                }
            }
        }
 /// <summary>
 /// Remove all pages.
 /// </summary>
 /// <param name="disposePage">Should the page be disposed when removed.</param>
 public void RemoveAllPages(bool disposePage)
 {
     // Remove all details about all pages from all parts of the hierarchy
     using (DockingMultiUpdate update = new DockingMultiUpdate(this))
     {
         base.PropogateAction(disposePage ? DockingPropogateAction.RemoveAndDisposeAllPages : DockingPropogateAction.RemoveAllPages, (string[])null);
     }
 }