protected override void OpenSlavePage(IPage masterPage, IPage page) { if (page.ViewModel is IWindowDialogSettings) { pages.Add(page); OpenWindowPage(page); return; } var masterTab = (masterPage as ITdiPage)?.TdiTab; if (masterTab?.TabParent is TdiSliderTab && (page.ViewModel as ISlideableViewModel)?.AlwaysNewPage != true) { var slider = masterTab.TabParent as TdiSliderTab; slider.AddSlaveTab(masterTab, (page as ITdiPage).TdiTab); (masterPage as IPageInternal).AddChildPage(page); } else { pages.Add(page); if (masterTab == null) { tdiNotebook.AddTab((page as ITdiPage).TdiTab); } else { tdiNotebook.AddSlaveTab((masterPage as ITdiPage).TdiTab, (page as ITdiPage).TdiTab); } } }
protected override void OpenSlavePage(IPage masterPage, IPage page) { if (page.ViewModel is IWindowDialogSettings) { pages.Add(page); OpenWindowPage(page); return; } pages.Add(page); var masterTab = (masterPage as ITdiPage)?.TdiTab; if (masterTab == null) { tdiNotebook.AddTab((page as ITdiPage).TdiTab); } else if (masterTab?.TabParent is TdiSliderTab slider) { slider.AddSlaveTab(masterTab, (page as ITdiPage).TdiTab); } else { tdiNotebook.AddSlaveTab(masterTab, (page as ITdiPage).TdiTab); } }
public void TdiTabClosedEventForDialogInSliderTest() { GtkInit.AtOnceInitGtk(); bool notebookEventRised = false, tabEventRised = false; var tabJournal = new EmptyJournalTab(); tabJournal.UseSlider = true; var tab = new EmptyDlg(); tab.TabClosed += (sender, e) => tabEventRised = true; var notebook = new TdiNotebook(); notebook.TabClosed += (sender, e) => notebookEventRised = (e.Tab == tab); notebook.AddTab(tabJournal); tabJournal.TabParent.AddTab(tab, tabJournal); var slider = tabJournal.TabParent as TdiSliderTab; Assert.That(slider.ActiveDialog, Is.EqualTo(tab)); notebook.ForceCloseTab(tab, CloseSource.External); Assert.That(slider.ActiveDialog, Is.Null); Assert.That(tabEventRised, Is.True); Assert.That(notebookEventRised, Is.True); }
public void TdiTabClosedEventTest() { var tab = Substitute.For <ITdiTab, Gtk.Widget>(); var notebook = new TdiNotebook(); notebook.AddTab(tab); Assert.That(notebook.Tabs.First().TdiTab, Is.EqualTo(tab)); notebook.ForceCloseTab(tab, CloseSource.External); tab.Received().OnTabClosed(); Assert.That(notebook.Tabs.Count, Is.EqualTo(0)); }
public void TdiTabClosedEventWithSliderTest() { var tab = Substitute.For <ITdiJournal, Gtk.Widget>(); tab.UseSlider.Returns(true); var notebook = new TdiNotebook(); notebook.AddTab(tab); Assert.That(notebook.Tabs.First().TdiTab, Is.InstanceOf <TdiSliderTab>()); notebook.ForceCloseTab(tab, CloseSource.External); tab.Received().OnTabClosed(); Assert.That(notebook.Tabs.Count, Is.EqualTo(0)); }