void RefreshExportLists() { //Remove all pages while (NotebookExport.NPages > 0) { notebookMap.Remove(NotebookExport.GetNthPage(0)); NotebookExport.RemovePage(0); } //Recreate pages for all xstage files foreach (ExportList exportList in controller.ExportSettings) { ExportListTab tab = new ExportListTab(exportList, controller, exportListController); Label lbl = new Label(exportList.Name); notebookMap.Add(tab, exportList); NotebookExport.AppendPage(tab, lbl); } NotebookExport.ShowAll(); }
public ProjectWindow(ProjectController controller) : base(Gtk.WindowType.Toplevel) { this.Build(); DeleteEvent += OnDeleteEvent; Notebook.RemovePage(0); NotebookExport.RemovePage(0); this.controller = controller; exportListController = controller.ExportController; this.Maximize(); controller.ExportListsChanged += RefreshExportLists; controller.XStageProjectListChanged += RefreshXStageProjectList; NotebookExport.SwitchPage += (o, args) => { Widget w = NotebookExport.GetNthPage((int)args.PageNum); exportListController.SetActiveExportList(notebookMap [w]); Console.WriteLine(notebookMap [w].Name); }; AddXStageButton.Clicked += (sender, e) => { Gtk.FileChooserDialog fc = new Gtk.FileChooserDialog("Open xstage file.", this, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "Open", ResponseType.Accept); fc.SetCurrentFolder(new Uri(controller.FileLocation, "./").AbsolutePath); FileFilter ff = new FileFilter(); ff.AddPattern("*.xstage"); fc.Filter = ff; if (fc.Run() == (int)ResponseType.Accept) { XStageProject xsp = XStageProject.Load(fc.Filename); List <XStageElement> elementTable = xsp.elements; controller.AddXStageProject(new Uri(fc.Uri)); } fc.Destroy(); }; NewExportListButton.Clicked += (sender, e) => { Dialog d = new Dialog("Enter Name", this, DialogFlags.Modal, "Cancel", ResponseType.Cancel, "Ok", ResponseType.Ok); Entry nameEntry = new Entry(); d.VBox.Add(nameEntry); d.ShowAll(); nameEntry.Activated += (sender1, e1) => { d.Respond(ResponseType.Ok); }; int response = d.Run(); if ((ResponseType)response == ResponseType.Ok) { controller.AddExportList(nameEntry.Text); } d.Destroy(); }; _SetupMenu(); _SetupExport(); Reinit(); }