#nullable enable namespace Terminal.Gui; /// /// Interface for main loop class that will process the queued input buffer contents. /// Is responsible for and translating into common Terminal.Gui /// events and data models. /// public interface IInputProcessor { /// Event fired when a key is pressed down. This is a precursor to . event EventHandler? KeyDown; /// Event fired when a key is released. /// /// Drivers that do not support key release events will fire this event after processing is /// complete. /// event EventHandler? KeyUp; /// Event fired when a terminal sequence read from input is not recognized and therefore ignored. public event EventHandler? AnsiSequenceSwallowed; /// Event fired when a mouse event occurs. event EventHandler? MouseEvent; /// /// Called when a key is pressed down. Fires the event. This is a precursor to /// . /// /// The key event data. void OnKeyDown (Key key); /// /// Called when a key is released. Fires the event. /// /// /// Drivers that do not support key release events will call this method after processing /// is complete. /// /// The key event data. void OnKeyUp (Key key); /// /// Called when a mouse event occurs. Fires the event. /// /// The mouse event data. void OnMouseEvent (MouseEventArgs mouseEventArgs); /// /// Drains the input buffer, processing all available keystrokes /// void ProcessQueue (); /// /// Gets the response parser currently configured on this input processor. /// /// public IAnsiResponseParser GetParser (); }