public virtual TreeList.Node CreateNode()
        {
            string offsetString = " (0x" + Start.ToString("X8") + "-" + "0x" + End.ToString("X8") + ")";
            string typeString   = GetTypeName(true);
            string valueString  = ToString();

            TreeList.Node node = new TreeList.Node(new string[] { offsetString, typeString, Name, valueString });

            foreach (SR1_Structure s in MembersRead)
            {
                node.Nodes.Add(s.CreateNode());
            }

            return(node);
        }
        public override TreeList.Node CreateNode()
        {
            string offsetString = " (0x" + Start.ToString("X8") + "-" + "0x" + End.ToString("X8") + ")";
            string typeString   = GetTypeName(true);
            string nameString   = Name;
            string valueString  = ToString();

            TreeList.Node node = new TreeList.Node(new string[] { offsetString, typeString, nameString, valueString });

            if (_array != null)
            {
                TreeList.Node[] elementNodes = new TreeList.Node[_array.Length];
                uint            size         = (uint)System.Runtime.InteropServices.Marshal.SizeOf(_array[0]);
                uint            start        = Start;
                uint            end          = Start + size;
                for (int i = 0; i < _array.Length; i++)
                {
                    offsetString = " (0x" + start.ToString("X8") + "-" + "0x" + end.ToString("X8") + ")";
                    typeString   = GetTypeName(false);
                    nameString   = "";
                    valueString  = _array[i].ToString();

                    int index = i;
                    int d     = _dimensions.Length;
                    while (d > 0)
                    {
                        d--;
                        int subIndex = index % _dimensions[d];
                        index /= _dimensions[d];
                        string indexName = "";
                        indexName += "[";
                        indexName += subIndex.ToString();
                        indexName += "]";
                        indexName += nameString;
                        nameString = indexName;
                    }

                    elementNodes[i] = new TreeList.Node(new string[] { offsetString, typeString, nameString, valueString });

                    start += size;
                    end   += size;
                }

                node.Nodes.AddRange(elementNodes);
            }

            return(node);
        }
示例#3
0
        public TreeList.Node[] CreateChunkNodes()
        {
            List <TreeList.Node> nodeList = new List <TreeList.Node>();

            foreach (KeyValuePair <uint, SR1_Structure> entry in _Structures)
            {
                uint          lookUpID  = entry.Key;
                SR1_Structure structure = entry.Value;

                if (lookUpID > 0 && structure.Parent != null)
                {
                    continue;
                }

                nodeList.Add(structure.CreateNode());
            }

            TreeList.Node dummyNode = new TreeList.Node(new string[] { "", "", "", "" });
            nodeList.Add(dummyNode);

            TreeList.Node[] nodes = nodeList.ToArray();

            return(nodes);
        }
 protected virtual TreeList.TextFormatting GetFormatting(TreeList.Node node, TreeList.TreeListColumn column)
 {
     return(column.CellFormat);
 }