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;
         }
     }
 }
Exemple #2
0
        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);
        }
Exemple #3
0
 internal void APIEndNode(bool pExpand)
 {
     if (mSubNodes.Count > 0)
     {
         StructureNode node = mSubNodes.Pop();
         node.Length = mParsing.Cursor - node.Cursor;
         if (pExpand)
         {
             node.Expand();
         }
     }
 }
Exemple #4
0
        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);
        }
Exemple #5
0
 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);
 }