private void newProjectButton_Click(object sender, EventArgs e) { if (currentProject != null) { var result = MessageBox.Show("There is an open project, save it?", "New project...", MessageBoxButtons.YesNoCancel); switch (result) { case DialogResult.Yes: if (!SaveProject()) { return; } break; case DialogResult.Cancel: return; } foreach (var anm in animations) { anm.FormClosed -= Anm_FormClosed; anm.Close(); anm.Dispose(); } animations.Clear(); currentProject = null; foreach (var child in MdiChildren) { if (child is ToolbarContainer) { continue; } child.Close(); child.Dispose(); if (child is CharSetEditor) { var edit = child as CharSetEditor; edit.Export -= Editor_Export; edit.Save -= Editor_Save; edit.Update -= Editor_Update; edit.FormClosed -= Editor_FormClosed; } } if (csManager != null) { csManager.CharSetSelected -= CsManager_CharSetSelected; csManager.CharSetDeleted -= CsManager_CharSetDeleted; csManager.CharSetUp -= CsManager_CharSetUp; csManager.CharSetDown -= CsManager_CharSetDown; csManager.Close(); csManager.Dispose(); csManager = null; } PluginManager.ProjectUnload(); } currentProject = new Project { Name = "Unnamed" }; this.Text = "Editing project (Unnamed)"; csManager = new CharSetListManager(true, true); csManager.MdiParent = this; csManager.Show(); csManager.Height = this.ClientSize.Height - (mainToolbar.Height + statusStrip.Height + 5); csManager.Left = this.ClientSize.Width - (csManager.Width + 5); csManager.Top = 0; csManager.CharSetSelected += CsManager_CharSetSelected; csManager.CharSetDeleted += CsManager_CharSetDeleted; csManager.CharSetUp += CsManager_CharSetUp; csManager.CharSetDown += CsManager_CharSetDown; PluginManager.NewProject(); EnableProjectButtons(); }
private void openProjectButton_Click(object sender, EventArgs e) { if (currentProject != null) { var result = MessageBox.Show("There is an open project, save it?", "Open project...", MessageBoxButtons.YesNoCancel); switch (result) { case DialogResult.Yes: if (!SaveProject()) { return; } break; case DialogResult.Cancel: return; } foreach (var anm in animations) { anm.FormClosed -= Anm_FormClosed; anm.Close(); anm.Dispose(); } animations.Clear(); currentProject = null; foreach (var child in MdiChildren) { if (child is ToolbarContainer) { continue; } child.Close(); child.Dispose(); if (child is CharSetEditor) { var edit = child as CharSetEditor; edit.Export -= Editor_Export; edit.Save -= Editor_Save; edit.Update -= Editor_Update; edit.FormClosed -= Editor_FormClosed; } } if (csManager != null) { csManager.CharSetSelected -= CsManager_CharSetSelected; csManager.CharSetDeleted -= CsManager_CharSetDeleted; csManager.CharSetUp -= CsManager_CharSetUp; csManager.CharSetDown -= CsManager_CharSetDown; csManager.Close(); csManager.Dispose(); csManager = null; } PluginManager.ProjectUnload(); } using (var dlg = new OpenFileDialog()) { dlg.Filter = "Archivos de proyecto de recursos (*.resproj)|*.resproj"; if (dlg.ShowDialog() != DialogResult.OK) { return; } try { string data = File.ReadAllText(dlg.FileName); currentProject = JsonConvert.DeserializeObject <Project>(data); } catch (Exception ex) { MessageBox.Show("Unexpected error: {ex.Message}"); return; } csManager = new CharSetListManager(true, true); csManager.MdiParent = this; csManager.Show(); csManager.Height = this.ClientSize.Height - (mainToolbar.Height + statusStrip.Height + 5); csManager.Left = this.ClientSize.Width - (csManager.Width + 5); csManager.Top = 0; csManager.CharSetSelected += CsManager_CharSetSelected; csManager.CharSetDeleted += CsManager_CharSetDeleted; csManager.CharSetUp += CsManager_CharSetUp; csManager.CharSetDown += CsManager_CharSetDown; csManager.CharSets = new CharSetListCharSets { Sprites = currentProject.Sprites, Tiles = currentProject.Tiles }; this.Text = $"Editing project {currentProject.Name}"; } PluginManager.ProjectLoad(currentProject.StoredData, currentProject.Sprites, currentProject.Tiles); EnableProjectButtons(); }
private void closeProjectButton_Click(object sender, EventArgs e) { if (currentProject != null) { var result = MessageBox.Show("Save project before closing?", "Close project...", MessageBoxButtons.YesNoCancel); switch (result) { case DialogResult.Yes: if (!SaveProject()) { return; } break; case DialogResult.Cancel: return; } foreach (var anm in animations) { anm.FormClosed -= Anm_FormClosed; anm.Close(); anm.Dispose(); } animations.Clear(); currentProject = null; foreach (var child in MdiChildren) { if (child is ToolbarContainer) { continue; } child.Close(); child.Dispose(); if (child is CharSetEditor) { var edit = child as CharSetEditor; edit.Export -= Editor_Export; edit.Save -= Editor_Save; edit.Update -= Editor_Update; edit.FormClosed -= Editor_FormClosed; } } if (csManager != null) { csManager.CharSetSelected -= CsManager_CharSetSelected; csManager.CharSetDeleted -= CsManager_CharSetDeleted; csManager.CharSetUp -= CsManager_CharSetUp; csManager.CharSetDown -= CsManager_CharSetDown; csManager.Close(); csManager.Dispose(); csManager = null; } PluginManager.ProjectUnload(); } currentProject = null; this.Text = " GuSprites Resource Designer"; DisableProjectButtons(); }