예제 #1
0
        public void RemoveTab(int page, bool animate)
        {
            var tab = pages [page];

            if (animate)
            {
                tabStrip.StartCloseAnimation((DockNotebookTab)tab);
            }
            pagesHistory.Remove(tab);
            if (pages.Count == 1)
            {
                CurrentTab = null;
            }
            else if (page == CurrentTabIndex)
            {
                SelectLastActiveTab(page);
            }
            pages.RemoveAt(page);
            UpdateIndexes(page);
            tabStrip.Update();
            tabStrip.DropDownButton.Sensitive = pages.Count > 0;

            PageRemoved?.Invoke(this, new TabEventArgs {
                Tab = tab
            });

            NotebookChanged?.Invoke(this, EventArgs.Empty);
        }
예제 #2
0
 public void RemovePage(Page page)
 {
     Ensure.Contains(_pages, x => x.Identifier == page.Identifier, CoreStrings.PageIdentifierNotExist(page.Identifier));
     _pages.Remove(page);
     _events.Add(PageRemoved.Create());
 }
예제 #3
0
 /// <summary>
 /// Raises the <see cref="PageRemoved"/> event.
 /// </summary>
 /// <param name="e">A <see cref="PageEventArgs"/> that contains event data.</param>
 protected internal virtual void OnPageRemoved(PageEventArgs e)
 {
     PageRemoved?.Invoke(this, e);
 }
예제 #4
0
 public void PerformPageRemoved(object sender, PageChangedEventArgs e)
 {
     PageRemoved?.Invoke(this, e);
 }