public void FromString(string str) { GrblConfig.GrblParam par = new GrblConfig.GrblParam(0, str); // fixme: lots of duplications of code in parameters. need a good fix switch (paramDesc.type) { case GrblConfig.ParamType.Bool: case GrblConfig.ParamType.Int: case GrblConfig.ParamType.Mask: case GrblConfig.ParamType.Selection: try { par.intVal = int.Parse(str); } catch { } break; case GrblConfig.ParamType.Float: par.floatVal = Utils.ParseFloatInvariant(str); break; } UpdateFromParameter(par, false); }
public void UpdateFromParameter(GrblConfig.GrblParam par, bool overrideChanges) { updatingGui = true; switch (paramDesc.type) { case GrblConfig.ParamType.Bool: { CheckBox cb = (CheckBox)activeControls[0]; cb.Checked = par.intVal != 0; if (overrideChanges) { lastIntValue = par.intVal; } } break; case GrblConfig.ParamType.Float: { NumericUpDown nud = (NumericUpDown)activeControls[0]; nud.Value = (decimal)par.floatVal; if (overrideChanges) { lastFloatValue = par.floatVal; } } break; case GrblConfig.ParamType.Int: { NumericUpDown nud = (NumericUpDown)activeControls[0]; nud.Value = (decimal)par.intVal; if (overrideChanges) { lastIntValue = par.intVal; } } break; case GrblConfig.ParamType.Mask: { if (isSimpleMask) { MultiSelect ms = (MultiSelect)activeControls[0]; ms.SelectedValue = par.intVal; } else { for (int i = 0; i < activeControls.Count; i++) { CheckBox cb = (CheckBox)activeControls[i]; cb.Checked = (par.intVal & (1 << i)) != 0; } } if (overrideChanges) { lastIntValue = par.intVal; } } break; case GrblConfig.ParamType.Selection: { ComboBox cb = (ComboBox)activeControls[0]; cb.SelectedIndex = par.intVal; if (overrideChanges) { lastIntValue = par.intVal; } } break; } updatingGui = false; if (overrideChanges) { isChanged = false; UpdateBackground(); } Visible = true; UpdateFromGui(); }