void AddControl <T1>(BaseTextControl <T1> field, NodeSlot slot)
 {
     if (slot is IHasValue <T1> )
     {
         field.value = ((IHasValue <T1>)slot).value;
     }
     field.OnValueChanged(OnValueChange);
     Add(field);
 }
 private BaseTextControl <T> AddControl <T>(AbstractNode node, BaseTextControl <T> field, ReflectionProperty property)
 {
     field.value = (T)property.GetValue(node);
     field.OnValueChanged(e =>
     {
         node.owner.owner.RegisterCompleteObjectUndo(typeof(T).Name + " Change");
         property.SetValue(node, e.newValue);
         node.Dirty(ModificationScope.Node);
     });
     return(field);
 }
 public override void OnValueChanged(EventCallback <ChangeEvent <TType> > callback)
 {
     m_Control.OnValueChanged(callback);
 }