Ejemplo n.º 1
0
        public static bool CloseProject()
        {
            if (Project.Modified)
            {
                string            msg = Catalog.GetString("Do you want to save the project before closing?");
                Gtk.MessageDialog dlg = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Question, ButtonsType.None, msg);
                dlg.AddButton(Catalog.GetString("Close without saving"), Gtk.ResponseType.No);
                dlg.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel);
                dlg.AddButton(Gtk.Stock.Save, Gtk.ResponseType.Yes);
                Gtk.ResponseType res = (Gtk.ResponseType)dlg.Run();
                dlg.Destroy();

                if (res == Gtk.ResponseType.Cancel)
                {
                    return(false);
                }

                if (res == Gtk.ResponseType.Yes)
                {
                    if (!SaveProject())
                    {
                        return(false);
                    }
                }
            }

            object[] obs = new object [openWindows.Count];
            openWindows.Values.CopyTo(obs, 0);
            foreach (Gtk.Widget page in obs)
            {
                WidgetNotebook.Remove(page);
                page.Destroy();
            }

            openWindows.Clear();

            Project.Close();
            MainWindow.Title = "Stetic";
            ProjectView.Clear();
            return(true);
        }