public override ICollection <GUIObject> Render() { var items = new List <GUIObject>() { _window, _titleElement }; items.AddRange(_closeButton.Render()); items.Add(_bodyElement); if (_body != null) { items.AddRange(_body.Render()); } return(items); }
public void RegisterDefaultState(GUIElementBase definition, bool full = false) { var key = GetElementHash(definition); var value = new StateCollection(); var props = definition.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (var prop in props) { value.Add(prop.Name, prop.GetValue(definition)); } if (full) { var objs = definition.Render(); foreach (var obj in objs) { var name = obj.Name; } } _defaultStates.Add(key, value); }
private string GetElementHash(GUIElementBase element) { return(new StringBuilder().Append(element.GetType().FullName).Append(element.Render()?.First().Name).Append(element.GetHashCode()).ToString()); }