diff --git a/AssetStudioGUI/AssetStudioGUIForm.Designer.cs b/AssetStudioGUI/AssetStudioGUIForm.Designer.cs index 3a44cc5..306014d 100644 --- a/AssetStudioGUI/AssetStudioGUIForm.Designer.cs +++ b/AssetStudioGUI/AssetStudioGUIForm.Designer.cs @@ -119,6 +119,12 @@ this.dumpTextBox = new System.Windows.Forms.TextBox(); this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); + this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.selectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.selectNoneToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + this.collapseAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.expandAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.timer = new System.Windows.Forms.Timer(this.components); this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); @@ -146,6 +152,7 @@ ((System.ComponentModel.ISupportInitialize)(this.FMODvolumeBar)).BeginInit(); this.tabPage5.SuspendLayout(); this.statusStrip1.SuspendLayout(); + this.contextMenuStrip2.SuspendLayout(); this.contextMenuStrip1.SuspendLayout(); this.SuspendLayout(); // @@ -583,6 +590,7 @@ this.sceneTreeView.Size = new System.Drawing.Size(472, 587); this.sceneTreeView.TabIndex = 1; this.sceneTreeView.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.sceneTreeView_AfterCheck); + this.sceneTreeView.MouseClick += new System.Windows.Forms.MouseEventHandler(this.sceneTreeView_MouseClick); // // treeSearch // @@ -1034,6 +1042,50 @@ this.toolStripStatusLabel1.Text = "Ready to go"; this.toolStripStatusLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // + // contextMenuStrip2 + // + this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.selectAllToolStripMenuItem, + this.selectNoneToolStripMenuItem, + this.toolStripSeparator5, + this.expandAllToolStripMenuItem, + this.collapseAllToolStripMenuItem}); + this.contextMenuStrip2.Name = "contextMenuStrip2"; + this.contextMenuStrip2.Size = new System.Drawing.Size(181, 120); + // + // selectAllToolStripMenuItem + // + this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem"; + this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.selectAllToolStripMenuItem.Text = "Select all"; + this.selectAllToolStripMenuItem.Click += new System.EventHandler(this.selectAllToolStripMenuItem_Click); + // + // selectNoneToolStripMenuItem + // + this.selectNoneToolStripMenuItem.Name = "selectNoneToolStripMenuItem"; + this.selectNoneToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.selectNoneToolStripMenuItem.Text = "Select none"; + this.selectNoneToolStripMenuItem.Click += new System.EventHandler(this.selectNoneToolStripMenuItem_Click); + // + // toolStripSeparator5 + // + this.toolStripSeparator5.Name = "toolStripSeparator5"; + this.toolStripSeparator5.Size = new System.Drawing.Size(177, 6); + // + // collapseAllToolStripMenuItem + // + this.collapseAllToolStripMenuItem.Name = "collapseAllToolStripMenuItem"; + this.collapseAllToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.collapseAllToolStripMenuItem.Text = "Collapse all"; + this.collapseAllToolStripMenuItem.Click += new System.EventHandler(this.collapseAllToolStripMenuItem_Click); + // + // expandAllToolStripMenuItem + // + this.expandAllToolStripMenuItem.Name = "expandAllToolStripMenuItem"; + this.expandAllToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.expandAllToolStripMenuItem.Text = "Expand all"; + this.expandAllToolStripMenuItem.Click += new System.EventHandler(this.expandAllToolStripMenuItem_Click); + // // timer // this.timer.Interval = 10; @@ -1146,6 +1198,7 @@ this.tabPage5.PerformLayout(); this.statusStrip1.ResumeLayout(false); this.statusStrip1.PerformLayout(); + this.contextMenuStrip2.ResumeLayout(false); this.contextMenuStrip1.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); @@ -1252,6 +1305,12 @@ private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem15; private System.Windows.Forms.ToolStripMenuItem dumpSelectedAssetsToolStripMenuItem; private System.Windows.Forms.CheckBox filterExcludeMode; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip2; + private System.Windows.Forms.ToolStripMenuItem selectAllToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem selectNoneToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; + private System.Windows.Forms.ToolStripMenuItem collapseAllToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem expandAllToolStripMenuItem; } } diff --git a/AssetStudioGUI/AssetStudioGUIForm.cs b/AssetStudioGUI/AssetStudioGUIForm.cs index e2faef3..c5222de 100644 --- a/AssetStudioGUI/AssetStudioGUIForm.cs +++ b/AssetStudioGUI/AssetStudioGUIForm.cs @@ -1300,6 +1300,14 @@ namespace AssetStudioGUI FMODreset(); } + private void tabControl2_SelectedIndexChanged(object sender, EventArgs e) + { + if (tabControl2.SelectedIndex == 1 && lastSelectedItem != null) + { + dumpTextBox.Text = DumpAsset(lastSelectedItem.Asset); + } + } + private void assetListView_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right && assetListView.SelectedIndices.Count > 0) @@ -1701,6 +1709,65 @@ namespace AssetStudioGUI } } + private void toolStripMenuItem15_Click(object sender, EventArgs e) + { + logger.ShowErrorMessage = toolStripMenuItem15.Checked; + } + + private void sceneTreeView_MouseClick(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Right && sceneTreeView.Nodes.Count > 0) + { + contextMenuStrip2.Show(sceneTreeView, e.Location.X, e.Location.Y); + } + } + + private void selectAllToolStripMenuItem_Click(object sender, EventArgs e) + { + sceneTreeView.BeginUpdate(); + foreach (TreeNode node in sceneTreeView.Nodes) + { + node.Checked = true; + } + sceneTreeView.EndUpdate(); + } + + private void selectNoneToolStripMenuItem_Click(object sender, EventArgs e) + { + sceneTreeView.BeginUpdate(); + foreach (TreeNode node in sceneTreeView.Nodes) + { + node.Checked = false; + } + sceneTreeView.EndUpdate(); + } + + private void expandAllToolStripMenuItem_Click(object sender, EventArgs e) + { + if (sceneTreeView.Nodes.Count > 500) + { + MessageBox.Show("Too many elements."); + return; + } + + sceneTreeView.BeginUpdate(); + foreach (TreeNode node in sceneTreeView.Nodes) + { + node.ExpandAll(); + } + sceneTreeView.EndUpdate(); + } + + private void collapseAllToolStripMenuItem_Click(object sender, EventArgs e) + { + sceneTreeView.BeginUpdate(); + foreach (TreeNode node in sceneTreeView.Nodes) + { + node.Collapse(ignoreChildren: false); + } + sceneTreeView.EndUpdate(); + } + #region FMOD private void FMODinit() { @@ -2134,19 +2201,6 @@ namespace AssetStudioGUI glControl1.SwapBuffers(); } - private void tabControl2_SelectedIndexChanged(object sender, EventArgs e) - { - if (tabControl2.SelectedIndex == 1 && lastSelectedItem != null) - { - dumpTextBox.Text = DumpAsset(lastSelectedItem.Asset); - } - } - - private void toolStripMenuItem15_Click(object sender, EventArgs e) - { - logger.ShowErrorMessage = toolStripMenuItem15.Checked; - } - private void glControl1_MouseWheel(object sender, MouseEventArgs e) { if (glControl1.Visible) diff --git a/AssetStudioGUI/AssetStudioGUIForm.resx b/AssetStudioGUI/AssetStudioGUIForm.resx index 3965e61..095950b 100644 --- a/AssetStudioGUI/AssetStudioGUIForm.resx +++ b/AssetStudioGUI/AssetStudioGUIForm.resx @@ -141,6 +141,9 @@ The quick brown fox jumps over the lazy dog. 1234567890 432, 17 + + 775, 21 + 553, 17