This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
nebolconsole [2021/11/04 12:18] – nebol | nebolconsole [2021/11/04 12:45] (current) – nebol | ||
---|---|---|---|
Line 3: | Line 3: | ||
< | < | ||
+ | An example of a setup with a large output area and a small input area at the bottom: | ||
<code csharp> | <code csharp> | ||
- | const int Width = 80; | + | static void SetupConsole() |
- | const int Height = 50; | + | { |
+ | const int Width = 80; | ||
+ | const int Height = 50; | ||
- | NebolConsole.Console.Instance.SetWindowSize(Width, | + | NebolConsole.Console.Instance.SetWindowSize(Width, |
+ | var output = new ConsoleArea(" | ||
+ | NebolConsole.Console.Instance.Areas.Add(output); | ||
+ | |||
+ | var input = new ConsoleArea(" | ||
+ | NebolConsole.Console.Instance.Areas.Add(input); | ||
+ | |||
+ | // add the main area last | ||
+ | var main = new ConsoleArea(" | ||
+ | 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, | ||
+ | carea.Wrap = true; | ||
+ | carea.Scroll = true; | ||
+ | } | ||
+ | |||
+ | NebolConsole.Console.Instance.OnKeyPressed += OnKeyPressed; | ||
+ | NebolConsole.Console.Instance.OnStringEntered += OnStringEntered; | ||
+ | |||
+ | input.SetCursorPosition(); | ||
+ | |||
+ | NebolConsole.Console.Instance.Update(); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | <code csharp> | ||
+ | protected static void OnStringEntered(object sender, ConsoleStringEnteredEventArgs ea) | ||
+ | { | ||
+ | var area = NebolConsole.Console.Instance.GetArea(" | ||
+ | area.WriteLine(" | ||
+ | } | ||
+ | |||
+ | protected static void OnKeyPressed(object sender, ConsoleKeyPressedEventArgs ea) | ||
+ | { | ||
+ | var area = NebolConsole.Console.Instance.GetArea(" | ||
+ | area.Write(ea.Key.KeyChar.ToString()); | ||
+ | |||
+ | area.SetCursorPosition(); | ||
+ | NebolConsole.Console.Instance.Update(); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | <code csharp> | ||
+ | do | ||
+ | { | ||
+ | NebolConsole.Console.Instance.Update(); | ||
+ | Thread.Sleep(1000); | ||
+ | } | ||
+ | while (!shutdown); | ||
</ | </ | ||