public static void Main(string[] args) { // Set up timestamps in debug output DebugStream = new TimeStampWriter(DebugStream, "HH:mm:ss.fff"); Padding p = new AbsolutePadding(2, 2, 1, 1); Console.CursorVisible = false; Console.Title = "Tofvesson Enterprises"; // Set console title // Start with the networking context ContextManager manager = new ContextManager(); NetContext networking = new NetContext(manager); if (CheckIsNewUser()) { manager.LoadContext(new IntroContext(manager, () => manager.LoadContext(networking))); } else { manager.LoadContext(networking); } // Start input listener loop. Graphics happen here too (triggered by keystrokes) ConsoleController.KeyEvent info = new ConsoleController.KeyEvent(default(ConsoleKeyInfo)) { ValidEvent = false }; bool first = true; do { if (first) { first = false; } else { info = controller.ReadKey(); } bool b = manager.Update(info), haskey = false; while (b) { System.Threading.Thread.Sleep(25); haskey = _kbhit() != 0; if (haskey) { info = controller.ReadKey(false); } b = manager.Update(info, haskey); controller.Draw(); } } while ((!info.ValidEvent || info.Event.Key != ConsoleKey.Escape) && !controller.ShouldExit); }
public override bool HandleKeyEvent(ConsoleController.KeyEvent info, bool inFocus, bool triggered) { bool b = (triggered || (inFocus && info.ValidEvent)) && info.Event.Key == ConsoleKey.Enter; base.HandleKeyEvent(info, inFocus, triggered); if (b) { evt?.Invoke(this); } return(b); }
//int gtrack = 0; public override bool Update(ConsoleController.KeyEvent keypress, bool hasKeypress = true) { /* * var connectBox = (TextBox)views.GetNamed("NetConnect"); * if (++gtrack == 10) * { * connectBox.BorderColor = (ConsoleColor)((int)(connectBox.BorderColor + 1) % 16); * gtrack = 0; * } * * connectBox.Dirty = true; */ return(base.Update(keypress, hasKeypress)); }