public MainView(IPresenterFactory presenterFactory) { _notebook = presenterFactory.InstantiatePresenter <MainNotebook>(); _notebook.Add(presenterFactory.InstantiatePresenter <MenuPageView>(this)); _notebook.Add(presenterFactory.InstantiatePresenter <ModsPageView>(this)); _notebook.Add(presenterFactory.InstantiatePresenter <BlueprintsPageView>(this)); _notebook.Add(presenterFactory.InstantiatePresenter <SavegamesPageView>(this)); _notebook.Add(presenterFactory.InstantiatePresenter <ScenariosPageView>(this)); _notebook.Add(presenterFactory.InstantiatePresenter <TasksPageView>(this)); PackStart(presenterFactory.InstantiatePresenter <MainHeaderView>()); var sideBox = new VBox { MinWidth = 280, WidthRequest = 280 }; _sidebarContainer = new SidebarContainer(); sideBox.PackStart(_sidebarContainer, true, true); var box = new HBox(); box.PackStart(_notebook, true); box.PackEnd(sideBox); PackStart(box, true, true); _notebook.HandleSizeChangeOnTabChange = true; _notebook.HandleSizeUpdate(); }
private void Application_WorkbookActivate(Workbook Wb) { // This method is called whenever a workbook comes to the front // Does not necessarily need to be a workbook that is persisted on the disk var workbook = DataModel.Instance.WorkbookModels.Where(p => ReferenceEquals(p.Workbook, Wb)) .FirstOrDefault(); if (workbook == null) { workbook = new WorkbookModel(Wb); DataModel.Instance.WorkbookModels.Add(workbook); DataModel.Instance.CurrentWorkbook = workbook; DataModel.Instance.CurrentWorkbook.LoadExtraInformation(); /// create shared pane var SidebarContainer = new SidebarContainer(); var Sidebar = CustomTaskPanes.Add(SidebarContainer, "Sidebar"); SidebarContainer.Sidebar.DataContext = workbook; Sidebar.Width = 320; TaskPanes.Add(new Tuple <WorkbookModel, string>(workbook, "Sidebar"), Sidebar); //add selection changed event handler for ribbon Wb.Application.SheetSelectionChange += DataModel.Instance.WorkbookSelectionChangedEventHandler; } DataModel.Instance.CurrentWorkbook = workbook; }