예제 #1
0
        protected bool ShowModalWindow(IPanel panel, IPanel parent)
        {
            var dialog = panel as Gtk.Dialog;

            if (dialog != null)
            {
                dialog.TransientFor = ((Bin)parent).Toplevel as Window;
                dialog.Response    += HandleModalWindowResponse;
                dialog.Center();
                panel.OnLoad();
            }
            else
            {
                ExternalWindow modalWindow = new ExternalWindow();
                modalWindow.Resizable     = false;
                modalWindow.DefaultWidth  = (panel as Gtk.Bin).WidthRequest;
                modalWindow.DefaultHeight = (panel as Gtk.Bin).HeightRequest;
                modalWindow.Title         = panel.Title;
                modalWindow.Modal         = true;
                modalWindow.TransientFor  = ((Bin)parent).Toplevel as Window;
                modalWindow.DeleteEvent  += HandleModalWindowDeleteEvent;
                Widget widget = panel as Gtk.Widget;
                modalWindow.Add(widget);
                modalWindow.SetPosition(WindowPosition.CenterOnParent);
                modalWindow.ShowAll();
                panel.OnLoad();
            }
            return(true);
        }
예제 #2
0
        Notebook CreateNewWindow(Notebook source, Widget page, int x, int y)
        {
            ExternalWindow window;
            EventBox       box;
            Notebook       notebook;

            window = new ExternalWindow();
            if (page == timeline)
            {
                window.Title = Catalog.GetString("Timeline");
            }
            else if (page == dashboardhpaned)
            {
                window.Title = Catalog.GetString("Analysis dashboard");
            }
            else if (page == playspositionviewer1)
            {
                window.Title = Catalog.GetString("Zonal tags viewer");
            }

            notebook          = new Notebook();
            notebook.ShowTabs = false;
            notebook.CanFocus = false;
            //notebook.Group = source.Group;

            window.Add(notebook);
            window.SetDefaultSize(page.Allocation.Width, page.Allocation.Height);
            window.Move(x, y);
            window.ShowAll();
            activeWindows.Add(window);
            window.DeleteEvent += (o, args) => {
                Widget pa = notebook.CurrentPageWidget;
                activeWindows.Remove(window);
                notebook.Remove(pa);
                source.AppendPage(pa, null);
                SetTabProps(pa, source.NPages == 0);
                notebook.Destroy();
            };
            return(notebook);
        }