<documentation not yet available>
An example of a setup with a large output area and a small input area at the bottom:
static void SetupConsole() { const int Width = 80; const int Height = 50; NebolConsole.Console.Instance.SetWindowSize(Width, Height); var output = new ConsoleArea("output", 1, 1, Width - 2, Height - 4); NebolConsole.Console.Instance.Areas.Add(output); var input = new ConsoleArea("input", 1, Height - 2, Width - 2, 1); NebolConsole.Console.Instance.Areas.Add(input); // add the main area last var main = new ConsoleArea("main", 0, 0, Width, Height); NebolConsole.Console.Instance.Areas.Add(main); // add borders, they are drawn on the main area in this case // so they are not actually part of their own areas but around them foreach (var carea in NebolConsole.Console.Instance.Areas.Where(item => item != main)) { main.WriteBorder(carea, ConsoleArea.BorderStyle.SIMPLE); carea.Wrap = true; carea.Scroll = true; } NebolConsole.Console.Instance.OnKeyPressed += OnKeyPressed; NebolConsole.Console.Instance.OnStringEntered += OnStringEntered; input.SetCursorPosition(); NebolConsole.Console.Instance.Update(); }
protected static void OnStringEntered(object sender, ConsoleStringEnteredEventArgs ea) { var area = NebolConsole.Console.Instance.GetArea("input"); area.WriteLine("You typed: " + ea.String); } protected static void OnKeyPressed(object sender, ConsoleKeyPressedEventArgs ea) { var area = NebolConsole.Console.Instance.GetArea("input"); area.Write(ea.Key.KeyChar.ToString()); area.SetCursorPosition(); NebolConsole.Console.Instance.Update(); }
do { NebolConsole.Console.Instance.Update(); Thread.Sleep(1000); } while (!shutdown);