private void mHex_SelectionLengthChanged(object pSender, EventArgs pArgs) { if (mHex.SelectionLength == 0) { MainForm.PropertyForm.Properties.SelectedObject = null; } else { byte[] buffer = null; StructureNode match = null; foreach (TreeNode node in MainForm.StructureForm.Tree.Nodes) { StructureNode realNode = node as StructureNode; buffer = realNode.Buffer; if (mHex.SelectionStart == realNode.Cursor && mHex.SelectionLength == realNode.Length) { match = realNode; break; } } MainForm.StructureForm.Tree.SelectedNode = match; if (buffer != null) { MainForm.PropertyForm.Properties.SelectedObject = new StructureSegment(buffer, (int)mHex.SelectionStart, (int)mHex.SelectionLength, MainForm.Locale); } else { MainForm.PropertyForm.Properties.SelectedObject = null; } } }
private void mTree_AfterSelect(object pSender, TreeViewEventArgs pArgs) { StructureNode node = pArgs.Node as StructureNode; if (node == null) { MainForm.DataForm.HexBox.SelectionLength = 0; MainForm.PropertyForm.Properties.SelectedObject = null; return; } MainForm.DataForm.HexBox.SelectionStart = node.Cursor; MainForm.DataForm.HexBox.SelectionLength = node.Length; MainForm.PropertyForm.Properties.SelectedObject = new StructureSegment(node.Buffer, node.Cursor, node.Length); }
internal void APIEndNode(bool pExpand) { if (mSubNodes.Count > 0) { StructureNode node = mSubNodes.Pop(); node.Length = mParsing.Cursor - node.Cursor; if (pExpand) { node.Expand(); } } }
internal void APIStartNode(string pName) { StructureNode node = new StructureNode(pName, mParsing.InnerBuffer, mParsing.Cursor, 0); if (mSubNodes.Count > 0) { mSubNodes.Peek().Nodes.Add(node); } else { mTree.Nodes.Add(node); } mSubNodes.Push(node); }
internal void APIStartNode(string pName) { StructureNode node = new StructureNode(pName, mParsing.Buffer, mParsing.Cursor, 0); if (mSubNodes.Count > 0) mSubNodes.Peek().Nodes.Add(node); else mTree.Nodes.Add(node); mSubNodes.Push(node); }