From 62a68d730907aa5edc6d630670d8d6336962325b Mon Sep 17 00:00:00 2001 From: ww-rm Date: Fri, 28 Feb 2025 23:21:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SpineViewer/src/MainForm.Designer.cs | 20 +++++++++- SpineViewer/src/MainForm.cs | 15 +++----- SpineViewer/src/SpineListView.Designer.cs | 45 +++++++++++++++++----- SpineViewer/src/SpineListView.cs | 42 ++++++++++++++++++-- SpineViewer/src/SpinePreviewer.Designer.cs | 3 +- SpineViewer/src/SpinePreviewer.cs | 1 + 6 files changed, 100 insertions(+), 26 deletions(-) diff --git a/SpineViewer/src/MainForm.Designer.cs b/SpineViewer/src/MainForm.Designer.cs index e441a49..0b7887a 100644 --- a/SpineViewer/src/MainForm.Designer.cs +++ b/SpineViewer/src/MainForm.Designer.cs @@ -37,6 +37,7 @@ toolStripMenuItem_Export = new ToolStripMenuItem(); toolStripSeparator2 = new ToolStripSeparator(); toolStripMenuItem_Exit = new ToolStripMenuItem(); + toolStripMenuItem_Function = new ToolStripMenuItem(); toolStripMenuItem_Help = new ToolStripMenuItem(); toolStripMenuItem_About = new ToolStripMenuItem(); rtbLog = new RichTextBox(); @@ -54,6 +55,7 @@ spinePreviewer = new SpinePreviewer(); panel_MainForm = new Panel(); toolTip = new ToolTip(components); + toolStripMenuItem_ResetAnimation = new ToolStripMenuItem(); menuStrip.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)splitContainer_MainForm).BeginInit(); splitContainer_MainForm.Panel1.SuspendLayout(); @@ -82,7 +84,7 @@ // menuStrip.BackColor = SystemColors.Control; menuStrip.ImageScalingSize = new Size(24, 24); - menuStrip.Items.AddRange(new ToolStripItem[] { toolStripMenuItem_File, toolStripMenuItem_Help }); + menuStrip.Items.AddRange(new ToolStripItem[] { toolStripMenuItem_File, toolStripMenuItem_Function, toolStripMenuItem_Help }); menuStrip.Location = new Point(0, 0); menuStrip.Name = "menuStrip"; menuStrip.Size = new Size(1741, 32); @@ -137,6 +139,13 @@ toolStripMenuItem_Exit.Text = "退出(&X)"; toolStripMenuItem_Exit.Click += toolStripMenuItem_Exit_Click; // + // toolStripMenuItem_Function + // + toolStripMenuItem_Function.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem_ResetAnimation }); + toolStripMenuItem_Function.Name = "toolStripMenuItem_Function"; + toolStripMenuItem_Function.Size = new Size(84, 28); + toolStripMenuItem_Function.Text = "功能(&F)"; + // // toolStripMenuItem_Help // toolStripMenuItem_Help.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem_About }); @@ -358,6 +367,13 @@ // toolTip.ShowAlways = true; // + // toolStripMenuItem_ResetAnimation + // + toolStripMenuItem_ResetAnimation.Name = "toolStripMenuItem_ResetAnimation"; + toolStripMenuItem_ResetAnimation.Size = new Size(270, 34); + toolStripMenuItem_ResetAnimation.Text = "重置动画(&R)"; + toolStripMenuItem_ResetAnimation.Click += toolStripMenuItem_ResetAnimation_Click; + // // MainForm // AutoScaleDimensions = new SizeF(11F, 24F); @@ -424,5 +440,7 @@ private SpineListView spineListView; private PropertyGrid propertyGrid_Previewer; private SpinePreviewer spinePreviewer; + private ToolStripMenuItem toolStripMenuItem_Function; + private ToolStripMenuItem toolStripMenuItem_ResetAnimation; } } diff --git a/SpineViewer/src/MainForm.cs b/SpineViewer/src/MainForm.cs index 8b40d39..de83a5b 100644 --- a/SpineViewer/src/MainForm.cs +++ b/SpineViewer/src/MainForm.cs @@ -42,8 +42,6 @@ namespace SpineViewer LogManager.ReconfigExistingLoggers(); } - #region ˵ - private void toolStripMenuItem_Open_Click(object sender, EventArgs e) { spineListView.Add(); @@ -69,13 +67,11 @@ namespace SpineViewer Close(); } - #endregion - - #region Ԥ - - #endregion - - #region + private void toolStripMenuItem_ResetAnimation_Click(object sender, EventArgs e) + { + foreach (var spine in spineListView.Spines) + spine.CurrentAnimation = spine.CurrentAnimation; + } private void splitContainer_SplitterMoved(object sender, SplitterEventArgs e) { @@ -92,6 +88,5 @@ namespace SpineViewer (sender as PropertyGrid)?.Refresh(); } - #endregion } } diff --git a/SpineViewer/src/SpineListView.Designer.cs b/SpineViewer/src/SpineListView.Designer.cs index 23008db..fb97bc3 100644 --- a/SpineViewer/src/SpineListView.Designer.cs +++ b/SpineViewer/src/SpineListView.Designer.cs @@ -34,11 +34,14 @@ columnHeader_Version = new ColumnHeader(); contextMenuStrip = new ContextMenuStrip(components); toolStripMenuItem_Add = new ToolStripMenuItem(); - toolStripMenuItem_BatchAdd = new ToolStripMenuItem(); toolStripMenuItem_Insert = new ToolStripMenuItem(); toolStripMenuItem_Remove = new ToolStripMenuItem(); toolStripSeparator1 = new ToolStripSeparator(); + toolStripMenuItem_BatchAdd = new ToolStripMenuItem(); toolStripMenuItem_RemoveAll = new ToolStripMenuItem(); + toolStripSeparator2 = new ToolStripSeparator(); + toolStripMenuItem_MoveUp = new ToolStripMenuItem(); + toolStripMenuItem_MoveDown = new ToolStripMenuItem(); contextMenuStrip.SuspendLayout(); SuspendLayout(); // @@ -76,9 +79,9 @@ // contextMenuStrip // contextMenuStrip.ImageScalingSize = new Size(24, 24); - contextMenuStrip.Items.AddRange(new ToolStripItem[] { toolStripMenuItem_Add, toolStripMenuItem_Insert, toolStripMenuItem_Remove, toolStripSeparator1, toolStripMenuItem_BatchAdd, toolStripMenuItem_RemoveAll }); + contextMenuStrip.Items.AddRange(new ToolStripItem[] { toolStripMenuItem_Add, toolStripMenuItem_Insert, toolStripMenuItem_Remove, toolStripSeparator1, toolStripMenuItem_MoveUp, toolStripMenuItem_MoveDown, toolStripSeparator2, toolStripMenuItem_BatchAdd, toolStripMenuItem_RemoveAll }); contextMenuStrip.Name = "contextMenuStrip"; - contextMenuStrip.Size = new Size(241, 193); + contextMenuStrip.Size = new Size(241, 259); contextMenuStrip.Opening += contextMenuStrip_Opening; // // toolStripMenuItem_Add @@ -88,13 +91,6 @@ toolStripMenuItem_Add.Text = "添加(&A)..."; toolStripMenuItem_Add.Click += toolStripMenuItem_Add_Click; // - // toolStripMenuItem_BatchAdd - // - toolStripMenuItem_BatchAdd.Name = "toolStripMenuItem_BatchAdd"; - toolStripMenuItem_BatchAdd.Size = new Size(240, 30); - toolStripMenuItem_BatchAdd.Text = "批量添加(&B)..."; - toolStripMenuItem_BatchAdd.Click += toolStripMenuItem_BatchAdd_Click; - // // toolStripMenuItem_Insert // toolStripMenuItem_Insert.Enabled = false; @@ -116,6 +112,13 @@ toolStripSeparator1.Name = "toolStripSeparator1"; toolStripSeparator1.Size = new Size(237, 6); // + // toolStripMenuItem_BatchAdd + // + toolStripMenuItem_BatchAdd.Name = "toolStripMenuItem_BatchAdd"; + toolStripMenuItem_BatchAdd.Size = new Size(240, 30); + toolStripMenuItem_BatchAdd.Text = "批量添加(&B)..."; + toolStripMenuItem_BatchAdd.Click += toolStripMenuItem_BatchAdd_Click; + // // toolStripMenuItem_RemoveAll // toolStripMenuItem_RemoveAll.Enabled = false; @@ -124,6 +127,25 @@ toolStripMenuItem_RemoveAll.Text = "移除全部(&X)"; toolStripMenuItem_RemoveAll.Click += toolStripMenuItem_RemoveAll_Click; // + // toolStripSeparator2 + // + toolStripSeparator2.Name = "toolStripSeparator2"; + toolStripSeparator2.Size = new Size(237, 6); + // + // toolStripMenuItem_MoveUp + // + toolStripMenuItem_MoveUp.Name = "toolStripMenuItem_MoveUp"; + toolStripMenuItem_MoveUp.Size = new Size(240, 30); + toolStripMenuItem_MoveUp.Text = "上移(&U)"; + toolStripMenuItem_MoveUp.Click += toolStripMenuItem_MoveUp_Click; + // + // toolStripMenuItem_MoveDown + // + toolStripMenuItem_MoveDown.Name = "toolStripMenuItem_MoveDown"; + toolStripMenuItem_MoveDown.Size = new Size(240, 30); + toolStripMenuItem_MoveDown.Text = "下移(&D)"; + toolStripMenuItem_MoveDown.Click += toolStripMenuItem_MoveDown_Click; + // // SpineListView // AutoScaleDimensions = new SizeF(11F, 24F); @@ -146,5 +168,8 @@ private ToolStripSeparator toolStripSeparator1; private ToolStripMenuItem toolStripMenuItem_BatchAdd; private ListView listView; + private ToolStripMenuItem toolStripMenuItem_MoveUp; + private ToolStripMenuItem toolStripMenuItem_MoveDown; + private ToolStripSeparator toolStripSeparator2; } } diff --git a/SpineViewer/src/SpineListView.cs b/SpineViewer/src/SpineListView.cs index 160b6ab..260f85e 100644 --- a/SpineViewer/src/SpineListView.cs +++ b/SpineViewer/src/SpineListView.cs @@ -65,9 +65,9 @@ namespace SpineViewer /// /// 弹出添加对话框 /// - public void Add() - { - Insert(); + public void Add() + { + Insert(); } /// @@ -235,6 +235,8 @@ namespace SpineViewer var itemsCount = listView.Items.Count; toolStripMenuItem_Insert.Enabled = selectedCount == 1; toolStripMenuItem_Remove.Enabled = selectedCount >= 1; + toolStripMenuItem_MoveUp.Enabled = selectedCount == 1 && listView.SelectedIndices[0] != 0; + toolStripMenuItem_MoveDown.Enabled = selectedCount == 1 && listView.SelectedIndices[0] != itemsCount - 1; toolStripMenuItem_RemoveAll.Enabled = itemsCount > 0; } @@ -274,6 +276,37 @@ namespace SpineViewer } } + + private void toolStripMenuItem_MoveUp_Click(object sender, EventArgs e) + { + if (listView.SelectedIndices.Count != 1) + return; + + var index = listView.SelectedIndices[0]; + if (index > 0) + { + (spines[index - 1], spines[index]) = (spines[index], spines[index - 1]); + var item = listView.Items[index]; + listView.Items.RemoveAt(index); + listView.Items.Insert(index - 1, item); + } + } + + private void toolStripMenuItem_MoveDown_Click(object sender, EventArgs e) + { + if (listView.SelectedIndices.Count != 1) + return; + + var index = listView.SelectedIndices[0]; + if (index < spines.Count - 1) + { + (spines[index], spines[index + 1]) = (spines[index + 1], spines[index]); + var item = listView.Items[index + 1]; + listView.Items.RemoveAt(index + 1); + listView.Items.Insert(index, item); + } + } + private void toolStripMenuItem_RemoveAll_Click(object sender, EventArgs e) { if (listView.Items.Count <= 0) @@ -283,9 +316,10 @@ namespace SpineViewer { spines.Clear(); listView.Items.Clear(); - if (PropertyGrid is not null) + if (PropertyGrid is not null) PropertyGrid.SelectedObject = null; } } + } } diff --git a/SpineViewer/src/SpinePreviewer.Designer.cs b/SpineViewer/src/SpinePreviewer.Designer.cs index df69832..e944f52 100644 --- a/SpineViewer/src/SpinePreviewer.Designer.cs +++ b/SpineViewer/src/SpinePreviewer.Designer.cs @@ -34,7 +34,7 @@ // // panel // - panel.BackColor = SystemColors.ControlDark; + panel.BackColor = SystemColors.Control; panel.Location = new Point(160, 160); panel.Margin = new Padding(0); panel.Name = "panel"; @@ -54,6 +54,7 @@ // AutoScaleDimensions = new SizeF(11F, 24F); AutoScaleMode = AutoScaleMode.Font; + BackColor = SystemColors.ControlDark; Controls.Add(panel); Name = "SpinePreviewer"; Size = new Size(640, 640); diff --git a/SpineViewer/src/SpinePreviewer.cs b/SpineViewer/src/SpinePreviewer.cs index 01cb988..e06b2f6 100644 --- a/SpineViewer/src/SpinePreviewer.cs +++ b/SpineViewer/src/SpinePreviewer.cs @@ -401,6 +401,7 @@ namespace SpineViewer RenderWindow.SetActive(false); } + } }