public static TvConsoleEvents Add(this TvConsoleEvents events, INPUT_RECORD[] buffer)
        {
            foreach (var record in buffer)
            {
                switch (record.EventType)
                {
                case ConsoleEventTypes.FOCUS_EVENT:
                    break;

                case ConsoleEventTypes.KEY_EVENT:
                    events.Add(new Win32ConsoleKeyboardEvent(record.KeyEvent));
                    break;

                case ConsoleEventTypes.MOUSE_EVENT:
                    events.Add(new Win32ConsoleMouseEvent(record.MouseEvent));
                    break;

                case ConsoleEventTypes.WINDOW_BUFFER_SIZE_EVENT:
                    events.SetWindowEvent(new Win32WindowsEvent(record.WindowBufferSizeEvent));
                    break;
                }
            }

            return(events);
        }
Exemplo n.º 2
0
 internal void Update(TvConsoleEvents evts)
 {
     DoPendingRemovals();
     DoPendingAdds();
     foreach (var cdata in _components.Values)
     {
         cdata.Component.Update(evts);
     }
 }
Exemplo n.º 3
0
 public void ProcessEvents(TvConsoleEvents evts)
 {
     if (evts.HasEvents)
     {
         foreach (var hook in _hooks)
         {
             hook.ProcessEvents(evts, _context);
         }
     }
 }
Exemplo n.º 4
0
 public TvConsoleEvents ReadEvents()
 {
     if (Console.KeyAvailable)
     {
         var key    = Console.ReadKey(intercept: true);
         var events = new TvConsoleEvents();
         events.Add(new DotNetConsoleKeyboardEvent(key, isDown: true));
         events.Add(new DotNetConsoleKeyboardEvent(key, isDown: false));
         return(events);
     }
     else
     {
         return(TvConsoleEvents.Empty);
     }
 }
Exemplo n.º 5
0
        public TvConsoleEvents ReadEvents()
        {
            var             code   = Curses.get_wch(out int wch);
            TvConsoleEvents events = null;

            if (code == Curses.OK)
            {
                events = new TvConsoleEvents();
                var alt = false;
                if (wch == EscKey) // Esc key read, we treat as Alt
                {
                    alt = true;
                    Curses.timeout(100);
                    var code2 = Curses.get_wch(out wch);
                    if (code2 == Curses.ERR)
                    {
                        wch = EscKey;
                        alt = false;
                    }
                }

                events.Add(new NCursesConsoleKeyboardEvent(wch, alt: alt, isDown: true));
                events.Add(new NCursesConsoleKeyboardEvent(wch, alt: alt, isDown: false));

                return(events);
            }

            else if (code == Curses.KEY_CODE_YES)
            {
                events = new TvConsoleEvents();
                if (wch == Curses.KeyMouse)
                {
                    Curses.getmouse(out Curses.MouseEvent ev);
                    return(TvConsoleEvents.Empty);
                }

                else
                {
                    events.Add(new NCursesConsoleKeyboardEvent(wch, alt: false, isDown: true));
                    events.Add(new NCursesConsoleKeyboardEvent(wch, alt: false, isDown: false));
                    return(events);
                }

                return(events);
            }

            return(TvConsoleEvents.Empty);
        }
Exemplo n.º 6
0
        public void ProcessEvents(TvConsoleEvents events, HookContext context)
        {
            var evt = events.WindowEvent;

            if (evt != null)
            {
                var cmps = context.ComponentTree.Components.ToList();
                foreach (var cmp in cmps)
                {
                    foreach (var vp in cmp.Viewports.ToList())
                    {
                        if (vp.Value is DynamicViewport dp)
                        {
                            cmp.UpdateViewport(vp.Key, dp.Recalculate());
                        }
                    }
                }
            }
        }
Exemplo n.º 7
0
 public BehaviorContext(TvConsoleEvents events, IViewport viewport)
 {
     Events          = events;
     Viewport        = viewport;
     ViewportUpdated = false;
 }
Exemplo n.º 8
0
 protected internal abstract void Update(TvConsoleEvents evts);