#nullable enable using System.Collections.Concurrent; namespace Terminal.Gui.Drivers; /// /// Base untyped interface for for methods that are not templated on low level /// console input type. /// public interface IComponentFactory { /// /// Create the class for the current driver implementation i.e. the class responsible for /// rendering into the console. /// /// IOutput CreateOutput (); } /// /// Creates driver specific subcomponent classes (, /// etc) for a /// . /// /// /// The platform specific console input type. Must be a value type (struct). /// Valid types are , , and . /// public interface IComponentFactory : IComponentFactory where TInputRecord : struct { /// /// Create class for the current driver implementation i.e. the class responsible for reading /// user input from the console. /// /// IInput CreateInput (); /// /// Creates the class for the current driver implementation i.e. the class /// responsible for /// translating raw console input into Terminal.Gui common event and . /// /// /// The input queue containing raw console input events, populated by /// implementations on the input thread and /// read by on the main loop thread. /// /// IInputProcessor CreateInputProcessor (ConcurrentQueue inputQueue); /// /// Creates class for the current driver implementation i.e. the class responsible for /// reporting the current size of the terminal. /// /// /// /// ISizeMonitor CreateSizeMonitor (IOutput consoleOutput, IOutputBuffer outputBuffer); }