User Tools

Site Tools


nebolconsole

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
nebolconsole [2021/11/04 12:18] nebolnebolconsole [2021/11/04 12:45] (current) nebol
Line 3: Line 3:
 <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> <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, Height);+ 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> </code>
  
nebolconsole.1636024699.txt.gz · Last modified: 2021/11/04 12:18 by nebol