示例#1
0
        public static void Add(this Notebook notebook, Widget widget, string str, bool isVolatile)
        {
            try
            {
                widget.Name = str;
                Extensions.Tabs.Add(str, widget);

                ScrolledWindow scrolledWindow = new ScrolledWindow();
                scrolledWindow.Add(widget);
                scrolledWindow.Name = str;
                if (widget is CodeTabWidget tabWidget)
                {
                    notebook.AppendPage(scrolledWindow, (tabWidget.GetLabel()));

                    tabWidget.GetLabel().ShowAll();
                    tabWidget.GetLabel().CloseClicked += delegate
                    {
                        notebook.RemovePage(notebook.PageNum(notebook.Children.First(x => x == scrolledWindow)));
                        Extensions.Tabs.Remove(str);
                    };
                }
                else
                {
                    NotebookTabLabel notebookTabLabel = new NotebookTabLabel(str, widget);

                    notebookTabLabel.CloseClicked += delegate(object obj, EventArgs eventArgs)
                    {
                        notebook.RemovePage(notebook.PageNum(notebook.Children.First(x => x == scrolledWindow)));
                        Extensions.Tabs.Remove(str);
                    };
                    notebook.AppendPage(scrolledWindow, notebookTabLabel);
                    notebookTabLabel.ShowAll();
                }

                notebook.SetTabDetachable(scrolledWindow, isVolatile);
                notebook.SetTabReorderable(scrolledWindow, isVolatile);

                widget.ShowAll();
            }
            catch (ArgumentException)
            {
                notebook.Page = notebook.PageNum(Tabs.First(x => x.Key == str).Value);
            }
            catch (Exception e)
            {
                ExceptionWindow.Create(e, notebook).ShowAll();
            }
        }
示例#2
0
    protected void newTab(string label, string contents = null, string path = "/")
    {
        ScrolledWindow w = new ScrolledWindow();
        TextView       t = new TextView();

        t.LeftMargin       = t.RightMargin = 5;
        t.PixelsAboveLines = 3;
        t.WrapMode         = WrapMode.WordChar;
        t.ModifyFont(Pango.FontDescription.FromString(settings.font));
        t.Buffer.Text = contents;
        //Label l = new Label (label);
        Node             ll = new Node(t.Buffer.Text);
        NotebookTabLabel l  = new NotebookTabLabel(label, path, ll);

        t.Buffer.Changed += delegate(object sender, EventArgs e) {
            l.ptr.rmt();
            l.ptr.add(new Node(t.Buffer.Text.ToString()));
            l.ptr = l.ptr.next;
            return;
        };
        w.Add(t);
        notebook.AppendPageMenu(w, l, new Label(label));
        notebook.SetTabReorderable(notebook.GetNthPage(notebook.NPages - 1), true);
        notebook.SetTabDetachable(notebook.GetNthPage(notebook.NPages - 1), true);
        l.CloseClicked += delegate(object obj, EventArgs eventArgs) {
            //closeTab (notebook.PageNum(w));
            for (int i = notebook.Page; i > notebook.PageNum(w); i--)
            {
                notebook.PrevPage();
            }
            for (int i = notebook.Page; i < notebook.PageNum(w); i++)
            {
                notebook.NextPage();
            }
            closeDoc(null, null);
        };
        notebook.ShowAll();
        for (int i = notebook.Page; i < notebook.NPages; i++)
        {
            notebook.NextPage();
        }
        return;
    }
示例#3
0
        private void OnShowSource(object sender, CoverageView.ShowSourceEventArgs e)
        {
            foreach (Widget widget in notebook1.Children) {
                SourceWindow notebookSourceWindow = widget as SourceWindow;
                if (notebookSourceWindow == null)
                    continue;

                if (notebookSourceWindow.classItem.Model.sourceFile.sourceFile != e.methodItem.ParentClass.Model.sourceFile.sourceFile)
                    continue;

                notebook1.CurrentPage = notebook1.PageNum (notebookSourceWindow);
                notebookSourceWindow.CenterOnMethod (e.methodItem);
                return;
            }

            SourceWindow sourceWindow = new SourceWindow (e.methodItem.ParentClass);
            sourceWindow.CenterOnMethod (e.methodItem);

            string sourceFile = e.methodItem.ParentClass.Model.sourceFile.sourceFile;
            sourceFile = Path.GetFileName (sourceFile);

            NotebookTabLabel notebookTabLabel = new NotebookTabLabel (sourceFile);
            int index = notebook1.AppendPage (sourceWindow, notebookTabLabel);
            notebook1.CurrentPage = index;
            notebookTabLabel.CloseClicked += delegate(object obj, EventArgs eventArgs) {
                notebook1.CurrentPage = notebook1.PageNum (sourceWindow);
                OnCloseTab (this, EventArgs.Empty);
            };
        }