protected ConsoleExtensionCore(string rootMenuLabel, string programHeader) { this._rootMenu = new Menu(rootMenuLabel, true); this._quitOption = CreateQuitOption(); this._rootMenu.AddOptions(this._quitOption); SetProgramHeader(); this.Initialize(); this._rootMenu.InvokeAsRootMenu(); IMenuOption <IMenuFunc> CreateQuitOption() { var quitMenu = this.CreateYesOrNoMenu( "Do you want to quit?", () => { }, () => { }, PostInvokeCommand.ExitRootMenu ); return(this.CreateMenuFuncOption(MenuOptionKey.Q, "Quit", quitMenu.Invoke)); } void SetProgramHeader() { Print.Settings.ProgramName = programHeader .If().Null.Throw().Null(nameof(programHeader)) .If().Empty.Throw().Argument(nameof(programHeader)); MenuOptionKeyService.ProgramHeaderPrinter = () => Print.Header(programHeader); } }
private static void MainMenu() { IMenuOption[] menuOptions = new IMenuOption[] { new RunPresetOption(), new CollectionCreationOption(), new OutputListOption() }; do { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine($"{currentGame.Name} Encount Music Editor"); Console.ResetColor(); for (int i = 0, total = menuOptions.Length; i < total; i++) { Console.WriteLine($"{i + 1}. {menuOptions[i].Name}"); } Console.WriteLine("0. Exit"); int choice = ConsolePrompt.PromptInt("Choice"); if (choice == 0) { return; } else if (choice - 1 < menuOptions.Length) { menuOptions[choice - 1].Run(currentGame); } }while (true); }
public DecisionOnFurtherCourseOfProgram(IMenuOption Option, IFakeConsole DummyConsole, IMenuOption Exit) { this.Option = Option; this.DummyConsole = DummyConsole; ExitFromProgram = Exit; }
static void Main(string[] args) { #region menu testing code /*var o = new IMenuOption[5] * { * new SliderOption("players", 2, 8, 1, 0, 4), * new OnOffOption("auto-health", false), * new EnumOption("gamemode", 0, "auto-all", "auto-turns", "manual-turns", "manual-all"), * new OnOffOption("hotkeys", true), * new SliderOption("graphics factor", 0, 5, 0.5, 1, 0) * }; * * var m = new Menu("D&D ENGINE: Settings 1", o, ConsoleTools.style12, ConsoleColor.DarkYellow, ConsoleColor.Yellow, * ConsoleColor.Blue, new Vector2(4, 5), 5); * * m.Initialize(); * m.Run();*/ #endregion var f = new Form("TEST_FORM", 20, 2, new Vector2(0, 0), "length7", "size5", "magnitude11", "expanse8"); //f.Initialize(); //f.Run(); var o = new IMenuOption[5] { new SliderOption("TEST_SLIDER", 0, 10, 1, 0, 5), new OnOffOption("TEST_ON_OFF", false), new EnumOption("TEST_ENUM", 0, "TEST1", "TEST2", "TEST3", "TEST4"), new SliderOption("PLACING_TEST", 0.350, 1.650, 0.050, 3, 0.800), new EnumOption("ABCDEF", 3, "A", "B", "C", "D", "E", "F") }; var m = new Menu("TEST_MENU", o, ConsoleTools.style12, ConsoleColor.DarkBlue, ConsoleColor.Blue, ConsoleColor.Yellow, new Vector2(5, 5), 3); m.Initialize(); m.Run(); /* * * GOALS: * 4. draw the form in any number of columns; pass in distance b/w columns * 5. allow highlight-scrolling (enforce order?) * 6. make the forms work, prohibit non-alphanumeric characters, add entered values to a dictionary * 7. enable border color, text color, highlight color, etc. */ Console.ReadLine(); }
private static void StartApplication() { using ILifetimeScope scope = Container.BeginLifetimeScope(); Menu menu = scope.Resolve <Menu>(); for (;;) { menu.ShowMenu(); IMenuOption menuAction = menu.SelectMenuOption(); Console.Clear(); menuAction?.Action(); } }
public IMenuOption SelectMenuOption() { if (!Console.ReadLine().SelectIntParse(GetOptions().Count, out int input)) { Console.WriteLine("Incorrect input!"); return(null); } List <IMenuOption> menuOptions = GetOptions().Select(x => x.Value).ToList(); IMenuOption selectedOption = menuOptions[input - 1]; return(selectedOption); }
static void Main(string[] args) { #region code page 437 /* Set the window size and title * Console.Title = "Code Page 437: MS-DOS ASCII Characters"; * * for (byte b = 0; b < byte.MaxValue; b++) * { * char c = Encoding.GetEncoding(437).GetChars(new byte[] { b })[0]; * switch (b) * { * case 8: // Backspace * case 9: // Tab * case 10: // Line feed * case 13: // Carriage return * c = '.'; * break; * } * * Console.Write("{0:000} {1} ", b, c); * * // 7 is a beep -- Console.Beep() also works * if (b == 7) Console.Write(" "); * * if ((b + 1) % 8 == 0) * Console.WriteLine(); * } * Console.WriteLine(); * * Console.ReadLine(); */ #endregion var o = new IMenuOption[3]; o[0] = new SliderOption("Absorbance", myLower: 0, myUpper: 1, myIncrement: 0.1, myRounding: 1, myDefault: 0.0); o[1] = new OnOffOption("Timer", false); o[2] = new EnumOption("Light Color", 0, "red", "green", "blue", "uv", "gamma"); var m = new Menu("beer's law", o, style12, ConsoleColor.White, ConsoleColor.White, ConsoleColor.Blue, new Vector2(1, 2), 3); m.Initialize(); Console.ReadLine(); }
internal int IndexOf(IMenuOption option) { if (option == null) { throw new ArgumentNullException(nameof(option)); } var cast = option as TOption; if (cast == null) { return(-1); } else { return(IndexOf(cast)); } }
public void Add <T>(IMenuOption <T> menuOption) where T : IInvokable, IMenuItem { menuOption.If().Null.Throw().Null(nameof(menuOption)); this.AddToMapper(menuOption.Key, menuOption.Item); }
private void OnOptionTextChanged(IMenuOption option) { CollectionChanged?.Invoke(this, CollectionUpdateTypes.Update, IndexOf(option), 1); }
internal Menu DisplayMenu(TaskCollection tasks) { Console.WriteLine("=========================="); Console.WriteLine($"{this.Title}"); foreach (var menuOption in mMenuOptions) { menuOption.Value.CheckPrerequisites(tasks); if (menuOption.Value.CanSelect) { Console.WriteLine($"{menuOption.Key}. { menuOption.Value.Title}"); } else { var old = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine($"{menuOption.Key}. { menuOption.Value.Title}"); Console.ForegroundColor = old; } } if (this.Parent != null) { Console.WriteLine($"{mMenuOptions.Count + 1}. Go Back"); } Console.WriteLine("=========================="); if (!int.TryParse(ConsoleUtilities.ReadString("Please select an option:"), out int i)) { Console.WriteLine("Invalid command, please try again!"); return(this); } Console.Write("\r\n"); IMenuOption option = null; if (!mMenuOptions.TryGetValue(i, out option)) { if (i == mMenuOptions.Count + 1 && this.Parent != null) { return(this.Parent); } Console.WriteLine("That's not an option, pal"); return(this); } if (!option.CanSelect) { // This menu option is disabled, pretend nothing happened and go back to the same menu return(this); } switch (option) { case Menu m: return(m); case Command c: c.Execute(tasks); return(this); default: System.Diagnostics.Debug.Fail($"Unexpected menu option {option.GetType().FullName}"); return(this); } }
public void addOption(IMenuOption option) { this.options.Add(option); }
public DecisionOnFurtherCourseOfProgram(IMenuOption Option) { this.Option = Option; DummyConsole = new FakeConsole(); ExitFromProgram = new Exit.ExitOption(DummyConsole); }
private void addOption(List <IMenuOption> options, IMenuOption option) { options.Add(option); }