private void SubtypeChangedCB(object sender, EventArgs e) { if (State == RemoteValueState.Remove) { return; } var subtype = FValuePin.SubType.Split(','); Type = subtype[0]; Default = float.Parse(subtype[2], FNumberFormat); Minimum = float.Parse(subtype[3], FNumberFormat); Maximum = float.Parse(subtype[4], FNumberFormat); State = RemoteValueState.Update; }
public RemoteValue(INode2 node, List <string> prefixes) { FNumberFormat.NumberDecimalSeparator = "."; Node = node; FPrefixes = prefixes; //note: this will break if patches are renamed! RuntimeNodePath = Node.GetNodePath(false); SourceNodePath = Node.Parent.NodeInfo.Filename + "/" + node.ID; FNamePin = node.LabelPin; FNamePin.Changed += ValueChangedCB; Name = FNamePin[0]; if (string.IsNullOrEmpty(Name)) { Name = RuntimeNodePath; } FValuePin = Node.FindPin("Y Input Value"); FValuePin.Changed += ValueChangedCB; FValuePin.SubtypeChanged += SubtypeChangedCB; Value = float.Parse(FValuePin[0], FNumberFormat); var subtype = FValuePin.SubType.Split(','); Type = subtype[0]; Default = float.Parse(subtype[2], FNumberFormat); Minimum = float.Parse(subtype[3], FNumberFormat); Maximum = float.Parse(subtype[4], FNumberFormat); if (Type == "Slider") { Stepsize = 1; } else { Stepsize = 0.01f; } State = RemoteValueState.Add; }
private void ValueChangedCB(object sender, EventArgs e) { if (State == RemoteValueState.Remove) { return; } var pin = sender as IPin2; if (pin == FValuePin) { Value = float.Parse(FValuePin[0], FNumberFormat); } else if (pin == FNamePin) { Name = FNamePin[0]; } State = RemoteValueState.Update; }
public void InvalidateState() { State = RemoteValueState.Idle; }