Rhino Version 7 SR15
(7.15.22039.13001, 2022-02-08)
GH version:
protected override Kernel.GH_GetterResult Prompt_Singular(ref TriStateType value)
{
Rhino.Input.Custom.GetOption() go = New Rhino.Input.Custom.GetOption();
go.SetCommandPrompt("TriState value");
go.AcceptNothing(true);
go.AddOption("True");
go.AddOption("False");
go.AddOption("Unknown");
switch (go.Get())
{
case Rhino.Input.GetResult.Option:
if (go.Option().EnglishName == "True") { value = new TriStateType(1); }
if (go.Option().EnglishName == "False") { value = new TriStateType(0); }
if (go.Option().EnglishName == "Unknown") { value = new TriStateType(-1); }
return GH_GetterResult.success;
case Rhino.Input.GetResult.Nothing:
return GH_GetterResult.accept;
default:
return GH_GetterResult.cancel;
}
}
protected overrides Kernel.GH_GetterResult Prompt_Plural(ref List<TriStateType> values)
{
values = new List<TriStateType>
while (true)
{
TriStateType val = null;
switch (Prompt_Singular(val))
case GH_GetterResult.success:
values.Add(val);
break;
case GH_GetterResult.accept:
return GH_GetterResult.success;
case GH_GetterResult.cancel:
values = null;
return GH_GetterResult.cancel;
}
}
}
To my understanding, the correct syntax should be:
protected override Kernel.GH_GetterResult Prompt_Singular(ref TriStateType value)
{
var go = Rhino.Input.Custom.GetOption();
go.SetCommandPrompt("TriState value");
go.AcceptNothing(true);
go.AddOption("True");
go.AddOption("False");
go.AddOption("Unknown");
switch (go.Get())
{
case Rhino.Input.GetResult.Option:
if (go.Option().EnglishName == "True") { value = new TriStateType(1); }
if (go.Option().EnglishName == "False") { value = new TriStateType(0); }
if (go.Option().EnglishName == "Unknown") { value = new TriStateType(-1); }
return GH_GetterResult.success;
case Rhino.Input.GetResult.Nothing:
return GH_GetterResult.accept;
default:
return GH_GetterResult.cancel;
}
}
protected overrides Kernel.GH_GetterResult Prompt_Plural(ref List<TriStateType> values)
{
values = new List<TriStateType>;
while (true)
{
TriStateType val = null;
switch (Prompt_Singular(val))
{
case GH_GetterResult.success:
values.Add(val);
break;
case GH_GetterResult.accept:
return GH_GetterResult.success;
case GH_GetterResult.cancel:
values = null;
return GH_GetterResult.cancel;
}
}
}
}
Am I understanding it correctly?