User Tools

Site Tools


nebolconsole

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
nebolconsole [2020/02/22 23:06] – external edit 127.0.0.1nebolconsole [2021/11/04 12:45] (current) nebol
Line 2: Line 2:
  
 <documentation not yet available> <documentation not yet available>
 +
 +An example of a setup with a large output area and a small input area at the bottom:
 +<code csharp>
 +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();
 +}
 +</code>
 +
 +
 +<code csharp>
 +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();
 +}
 +</code>
 +
 +<code csharp>
 +do
 +{
 + NebolConsole.Console.Instance.Update();
 + Thread.Sleep(1000);
 +}
 +while (!shutdown);
 +</code>
 +
nebolconsole.1582409181.txt.gz · Last modified: 2020/02/22 23:06 by 127.0.0.1