Пример #1
0
        public static void Main(string[] args)
        {
            AppDomain.CurrentDomain.ProcessExit += On_ProcessExit;

            Console.OutputEncoding = Encoding.UTF8; //unicode not supported by mono correctly
            Console.InputEncoding  = Encoding.UTF8;

            //new Thread(Listener).Start();

            var platform = Environment.OSVersion.Platform;
            var winNt    = platform == PlatformID.Win32NT;

            con = new NativeConsole(winNt && !Console.IsOutputRedirected
                ? (IAnsiConsole) new ConhostAnsiConsole()
                : new GenericAnsiConsole());

            con.Init();

            Console.WriteLine(Console.OutputEncoding);

            TestRendering();
            return;

            var ansi = new AnsiInputConverter();

            while (true)
            {
//                if (!Console.KeyAvailable) {
//                    Thread.Sleep(new TimeSpan(20000));
//                    continue;
//                }
                char c = ansi.Read(false);
                Console.Write(c);
                var ev = ansi.DequeueEvent();
                Console.Write(ev?.ToString());
            }



////            bool last = false;
////            var sw = new Stopwatch();
//            while (true) {
////                if (!Console.KeyAvailable) {
////                    if (!last) {
////                        sw.Start();
////                        last = true;
////                    }
////                    Thread.Sleep(new TimeSpan(10000));
////                    Console.Write('.');
////                    continue;
////                }
////                if (last) {
////                    Console.WriteLine($"{sw.ElapsedMilliseconds}");
////                    sw.Reset();
////                    last = false;
////                }
//                var c = Console.ReadKey(true);
//                var shift = (c.Modifiers & ConsoleModifiers.Shift) != 0 ? "Shift" : "NoShift";
//                var control = (c.Modifiers & ConsoleModifiers.Control) != 0 ? "Control" : "NoControl";
//                var alt = (c.Modifiers & ConsoleModifiers.Alt) != 0 ? "Alt" : "NoAlt";
//                Console.Write($"'{c.KeyChar}' {(int)c.KeyChar}, {c.Key}, {shift}, {control}, {alt} \n");
//            }
        }
 public AnsiInputEvent Traverse(AnsiInputConverter con, char c, bool b, bool qo, object[] data)
 {
     return(new SizeEvent((int)data[0], (int)data[1]));
 }
Пример #3
0
 public AnsiInputEvent Traverse(AnsiInputConverter con, char c, bool b, bool qo, params object[] data) => con.NextPart(GetNext(c, data), b, qo, data);
Пример #4
0
 public AnsiInputEvent Traverse(AnsiInputConverter con, char c, bool b, bool qo, object[] data)
 {
     return(_next.Traverse(con, c, b, qo, new object[_size]));
 }
 public AnsiInputEvent Traverse(AnsiInputConverter con, char c, bool b, bool qo, object[] data)
 {
     return(c != _expected ? null : con.NextPart(_next, b, qo, data));
 }