/// <summary>Easy to use bool getter.</summary> /// <param name="prompt">Command prompt.</param> /// <param name="acceptNothing">If true, the user can press enter.</param> /// <param name="offPrompt">The 'false/off' message.</param> /// <param name="onPrompt">The 'true/on' message.</param> /// <param name="boolValue">Default bool value set to this and returned here.</param> /// <returns>The getter result based on user choice. /// <para>Commands.Result.Success - got value.</para> /// <para>Commands.Result.Nothing - user pressed enter.</para> /// <para>Commands.Result.Cancel - user cancelled value getting.</para> /// </returns> public static Commands.Result GetBool(string prompt, bool acceptNothing, string offPrompt, string onPrompt, ref bool boolValue) { Commands.Result result = Commands.Result.Failure; using (Rhino.Input.Custom.GetOption get = new Rhino.Input.Custom.GetOption()) { get.SetCommandPrompt(prompt); get.AcceptNothing(acceptNothing); if (acceptNothing) get.SetDefaultString(boolValue ? onPrompt : offPrompt); int onValue = get.AddOption(onPrompt); int offValue = get.AddOption(offPrompt); get.Get(); result = get.CommandResult(); if (result == Commands.Result.Success && get.Result() == GetResult.Option) { Rhino.Input.Custom.CommandLineOption option = get.Option(); if (null != option) { if (option.Index == onValue) boolValue = true; else if (option.Index == offValue) boolValue = false; } } } return result; }