private void ValidateStorableFreeToBind(JSONStorableParam v) { if (v is JSONStorableStringChooser) { if (((JSONStorableStringChooser)v).popup != null) { SuperController.LogError($"Storable {v.name} of atom {plugin.containingAtom.name} was not correctly unregistered."); } } else if (v is JSONStorableFloat) { if (((JSONStorableFloat)v).slider != null) { SuperController.LogError($"Storable {v.name} of atom {plugin.containingAtom.name} was not correctly unregistered."); } } else if (v is JSONStorableString) { if (((JSONStorableString)v).inputField != null) { SuperController.LogError($"Storable {v.name} of atom {plugin.containingAtom.name} was not correctly unregistered."); } } else if (v is JSONStorableBool) { if (((JSONStorableBool)v).toggle != null) { SuperController.LogError($"Storable {v.name} of atom {plugin.containingAtom.name} was not correctly unregistered."); } } }
public static void Restore(this JSONNode config, JSONStorableParam storable) { if (storable == null) { return; } const string dummyNodeName = "Dummy"; var dummyNode = new JSONClass(); var oldName = storable.name; var nodeNames = storable.name.Split(':'); var node = config; foreach (var name in nodeNames.Take(nodeNames.Length - 1)) { node = node[name]; } dummyNode[dummyNodeName] = node[nodeNames.Last()]; storable.name = dummyNodeName; storable.RestoreFromJSON(dummyNode); storable.name = oldName; }
static public IStorableParameter Create(JSONStorableParam p) { if (p is JSONStorableFloat) { return(new FloatStorableParameter(p as JSONStorableFloat)); } else if (p is JSONStorableBool) { return(new BoolStorableParameter(p as JSONStorableBool)); } else if (p is JSONStorableColor) { return(new ColorStorableParameter(p as JSONStorableColor)); } else if (p is JSONStorableUrl) { return(new UrlStorableParameter(p as JSONStorableUrl)); } else if (p is JSONStorableString) { return(new StringStorableParameter(p as JSONStorableString)); } else if (p is JSONStorableStringChooser) { return(new StringChooserStorableParameter(p as JSONStorableStringChooser)); } else { return(null); } }
public void OnDestroy() { var clone = new JSONStorableParam[_storables.Count]; _storables.CopyTo(clone); _storables.Clear(); foreach (var component in clone) { if (component == null) { continue; } if (component is JSONStorableStringChooser) { RemovePopup((JSONStorableStringChooser)component); } else if (component is JSONStorableFloat) { RemoveSlider((JSONStorableFloat)component); } else if (component is JSONStorableString) { RemoveTextField((JSONStorableString)component); } else if (component is JSONStorableBool) { RemoveToggle((JSONStorableBool)component); } else { SuperController.LogError($"VamTimeline: Cannot remove component {component}"); } } }
public override bool TryParameter(JSONStorableParam p) { if (p is T) { param_ = (T)p; return(true); } return(false); }
public void SetParameter(JSONStorableParam sp) { if (Parameter != null && Parameter.TryParameter(sp)) { return; } var p = StorableParameterFactory.Create(sp); if (p == null) { Synergy.LogError("unknown parameter type " + sp.ToString()); return; } Parameter = p; }
private void InitControls(string freeform, Boolean side) { var lines = Regex.Split(freeform, "\r\n") .Select(x => x.Trim()) .Where(x => x.Count() > 0); UIDynamic ui = null; JSONStorableParam js = null; foreach (string line in lines) { {// a label var t = Regex.Match(line, "^`(.*)$"); if (t.Success) { JSONStorableString storable = new JSONStorableString("Info", t.Groups[1].Value); ui = this.CreateTextField(storable, side); js = storable; } } {// UIDynamic properties var t = Regex.Match(line, "^\\^(.*)$"); if (t.Success) { Regex.Split(t.Groups[1].Value, ",").ToList().ForEach(s => { var kv = Regex.Match(s, "^(.+)=(.*)$"); if (kv.Success) { string v = kv.Groups[2].Value; switch (kv.Groups[1].Value) { // modifies latest UIDynamic case "height": { float height = float.Parse(v); LayoutElement layout = ((UIDynamicTextField)ui).GetComponent <LayoutElement>(); layout.preferredHeight = height; layout.minHeight = height; ui.height = height; break; } case "fontSize": { ((UIDynamicTextField)ui).UItext.fontSize = (int)(float.Parse(v)); break; } case "alignment": { var a = ((UIDynamicTextField)ui).UItext; switch (v) { case "MiddleCenter": a.alignment = TextAnchor.MiddleCenter; break; case "MiddleLeft": a.alignment = TextAnchor.MiddleLeft; break; case "MiddleRight": a.alignment = TextAnchor.MiddleRight; break; case "LowerLeft": a.alignment = TextAnchor.LowerLeft; break; } break; } case "textColor": { int i = int.Parse(v.Substring(1), System.Globalization.NumberStyles.HexNumber); Color c = new Color((i >> 16) & 0xff, (i >> 8) & 0xff, i & 0xff); ((UIDynamicTextField)ui).textColor = c; break; } case "setBoolean": { ((JSONStorableBool)js).SetVal(Boolean.Parse(v)); break; } } } }); } } { var t = Regex.Match(line, "^SPACER ([-e.0-9]+)$"); if (t.Success) { var spacer = CreateSpacer(side); spacer.height = float.Parse(t.Groups[1].Value); } } { var t = Regex.Match(line, "^(.+) : ([^ ]+) *(\\[.*\\])?$"); if (t.Success) { string type = t.Groups[2].Value; string varname = t.Groups[1].Value; string titlename = t.Groups[1].Value; if (titlename.Contains("/")) { titlename = titlename.Substring(0, titlename.IndexOf("/")); } switch (type) { case "Boolean": { jsBoolean[varname] = new JSONStorableBool(titlename, false, new JSONStorableBool.SetBoolCallback(v => BooleanSettingChanged(varname, v))); RegisterBool(jsBoolean[varname]); CreateToggle(jsBoolean[varname], side); BooleanSettingChanged(varname, jsBoolean[varname].val); js = jsBoolean[varname]; break; } case "Float": { var tt = Regex.Match(t.Groups[3].Value, "^\\[([-.0-9]+),([-.0-9]+),([-.0-9]+)\\]$"); jsFloat[varname] = new JSONStorableFloat( titlename , float.Parse(tt.Groups[1].Value) , new JSONStorableFloat.SetFloatCallback(v => FloatSettingChanged(varname, v)) , float.Parse(tt.Groups[2].Value) , float.Parse(tt.Groups[3].Value) , true ); RegisterFloat(jsFloat[varname]); CreateSlider(jsFloat[varname], side); FloatSettingChanged(varname, jsFloat[varname].val); js = jsFloat[varname]; break; } } } } } }
public void SetParameter(JSONStorableParam sp) { holder_.SetParameter(sp); }
protected ParamDerivedStorableParameter(JSONStorableParam p = null) { param_ = (T)p; }
public virtual bool TryParameter(JSONStorableParam p) { return(false); }