Пример #1
0
        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();
        }
Пример #2
0
        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();
        }
Пример #3
0
        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();
        }