Ejemplo n.º 1
0
        public CompositeVariableDisplayController(DebuggingStructure debuggingStructure)
        {
            DebuggingStructure = debuggingStructure;

            Size = debuggingStructure.Properties.Sum(prop => prop.Controller.Size);
        }
Ejemplo n.º 2
0
        public static DebuggingStructureList FromXml(XmlTextReader reader)
        {
            DebuggingStructureList list = new DebuggingStructureList();

            if (reader.Name != "DebugStructs")
            {
                return(list);
            }

            if (reader.IsEmptyElement)
            {
                reader.MoveToNextElement();
                return(list);
            }

            reader.MoveToNextElement();
            while (reader.Name == "Enum")
            {
                var name       = reader.GetAttribute("Name");
                var enumValues = new Dictionary <byte, List <string> >();
                if (!reader.MoveToNextElement())
                {
                    break;
                }

                while (reader.Name == "EnumMask")
                {
                    var  maskList = new List <string>();
                    byte maskValue;
                    if (!byte.TryParse(reader.GetAttribute("Mask"), out maskValue))
                    {
                        continue;
                    }

                    while (reader.MoveToNextElement())
                    {
                        if (reader.Name != "EnumValue")
                        {
                            break;
                        }

                        maskList.Add(reader.ReadString());
                    }


                    enumValues.Add(maskValue, maskList);
                }

                var debugEnum = new DebuggingEnum(name, enumValues);
                list.DebugEnums.Add(debugEnum);
            }

            while (reader.Name == "Struct")
            {
                var name      = reader.GetAttribute("Name");
                var structure = new DebuggingStructure {
                    Name = name
                };
                while (reader.MoveToNextElement())
                {
                    if (reader.Name != "Prop")
                    {
                        break;
                    }

                    var model = new TreeStructureModel
                    {
                        Name = reader.GetAttribute("Name"),
                        Size = Convert.ToInt32(reader.GetAttribute("Size")),
                        Type = reader.GetAttribute("Type")
                    };

                    structure.Properties.Add(model);
                }

                list.DebugStructs.Add(structure);
            }

            return(list);
        }