ComponentFactory.cs 795 B

1234567891011121314151617181920212223242526
  1. #nullable enable
  2. using System.Collections.Concurrent;
  3. namespace Terminal.Gui.Drivers;
  4. /// <summary>
  5. /// Abstract base class implementation of <see cref="IComponentFactory{T}"/>
  6. /// </summary>
  7. /// <typeparam name="T"></typeparam>
  8. public abstract class ComponentFactory<T> : IComponentFactory<T>
  9. {
  10. /// <inheritdoc />
  11. public abstract IConsoleInput<T> CreateInput ();
  12. /// <inheritdoc />
  13. public abstract IInputProcessor CreateInputProcessor (ConcurrentQueue<T> inputBuffer);
  14. /// <inheritdoc />
  15. public virtual IWindowSizeMonitor CreateWindowSizeMonitor (IConsoleOutput consoleOutput, IOutputBuffer outputBuffer)
  16. {
  17. return new WindowSizeMonitor (consoleOutput, outputBuffer);
  18. }
  19. /// <inheritdoc />
  20. public abstract IConsoleOutput CreateOutput ();
  21. }