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