public static Element Create(Element parent, string name, ConfigSection section) { var typeName = (string)section["type"]; Debug.Assert(typeName != "root"); Element result; switch (typeName) { case "button": result = new Button(parent.Game); break; case "window": result = new Window(parent.Game); break; default: throw new NotSupportedException( string.Format("Unsupported Element type: {0}", typeName)); } result.Type = typeName; result.Parent = parent; result.Name = name; result.Initialize(section); return result; }
public Element(Element other) { Debug.Assert(Type != "root"); Game = other.Game; Type = other.Type; Name = other.Name; Position = other.Position; Dimensions = other.Dimensions; Parent = other.Parent; }