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); }
internal void Update(TvConsoleEvents evts) { DoPendingRemovals(); DoPendingAdds(); foreach (var cdata in _components.Values) { cdata.Component.Update(evts); } }
public void ProcessEvents(TvConsoleEvents evts) { if (evts.HasEvents) { foreach (var hook in _hooks) { hook.ProcessEvents(evts, _context); } } }
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); } }
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); }
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()); } } } } }
public BehaviorContext(TvConsoleEvents events, IViewport viewport) { Events = events; Viewport = viewport; ViewportUpdated = false; }
protected internal abstract void Update(TvConsoleEvents evts);