public CompositeVariableDisplayController(DebuggingStructure debuggingStructure) { DebuggingStructure = debuggingStructure; Size = debuggingStructure.Properties.Sum(prop => prop.Controller.Size); }
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); }