Example #1
0
        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();
        }
Example #2
0
        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;
        }