Skip to content

Commit 4090192

Browse files
committed
Added "Create Class from Nodes"
1 parent d1e0bd3 commit 4090192

File tree

2 files changed

+56
-12
lines changed

2 files changed

+56
-12
lines changed

UI/MemoryViewControl.Designer.cs

Lines changed: 31 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UI/MemoryViewControl.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -589,6 +589,9 @@ private void selectedNodeContextMenuStrip_Opening(object sender, CancelEventArgs
589589

590590
changeTypeToolStripMenuItem.Enabled = count > 0 && !nodeIsClass;
591591

592+
createClassFromNodesToolStripMenuItem.Enabled = count > 0 && !nodeIsClass;
593+
dissectNodesToolStripMenuItem.Enabled = count > 0 && !nodeIsClass;
594+
592595
pasteNodesToolStripMenuItem.Enabled = count == 1 && ReClassClipboard.ContainsNodes;
593596
removeToolStripMenuItem.Enabled = !nodeIsClass;
594597

@@ -651,6 +654,28 @@ private void pasteNodesToolStripMenuItem_Click(object sender, EventArgs e)
651654
PasteNodeFromClipboardToSelection();
652655
}
653656

657+
private void createClassFromNodesToolStripMenuItem_Click(object sender, EventArgs e)
658+
{
659+
if (selectedNodes.Count > 0 && !(selectedNodes[0].Node is ClassNode))
660+
{
661+
var parentNode = selectedNodes[0].Node.ParentNode as ClassNode;
662+
if (parentNode != null)
663+
{
664+
var classNode = ClassNode.Create();
665+
selectedNodes.Select(h => h.Node).ForEach(classNode.AddNode);
666+
667+
var classInstanceNode = new ClassInstanceNode();
668+
classInstanceNode.ChangeInnerNode(classNode);
669+
670+
parentNode.InsertNode(selectedNodes[0].Node, classInstanceNode);
671+
672+
selectedNodes.Select(h => h.Node).ForEach(c => parentNode.RemoveNode(c));
673+
674+
ClearSelection();
675+
}
676+
}
677+
}
678+
654679
private void dissectNodesToolStripMenuItem_Click(object sender, EventArgs e)
655680
{
656681
var hexNodes = selectedNodes.Where(h => h.Node is BaseHexNode);

0 commit comments

Comments
 (0)