Hacker News new | ask | show | jobs
by alkonaut 1348 days ago
Are there any specific examples from the demo that don't show proper highlights (i.e. that don't look exactly like e.g. TurboPascal, Norton Commander or Linux menuconfig in terms of hints/highlight/focus)?

This isn't an emulation of a mouse gui stuck in a terminal, this is literally a port of an older curses lib to the latest .net, so it doesn't feel like it should have any unnecessary influence from desktop ui systems at all.

1 comments

This is NOT "literally a port of an older curses lib to the latest .net". It is a complete API for building terminal UI applications using .NET that leverages curses under the covers when running in a non-Windows environment (on Windows it uses the native Windows console APIs).

For completeness, Terminal.Gui is built on top of a "Console Abstraction Layer" (CAL; I just invented that term), via the "ConsoleDriver" base class. There are four subclasses provided:

- CursesDriver: Uses curses and is the default on Linux/Mac.

- WindowsDriver: Uses the Windows console API and is the default on Windows (only works on Windows)

- NetDriver: Uses the .NET console API and works on all platforms

- FakeDriver: Used for unit testing.

NetDriver is the slowest. WindowsDriver is the fastest. CursesDriver is the biggest bugfarm ;-).

I only meant port of a curses based lib as in “This is an updated version of gui.cs that Miguel wrote for mono-curses in 2007”

so it would be natural that it’s still a normal keyboard-first terminal ui lib because gui.cs was. Would be pretty strange if this took a whole different direction or scope and became a WinForms-in-the-terminal. Can’t see anything in the video, source or history that suggests that it’s anything but a terminal ui only adapted for more targets other than curses.

Terminal.Gui really has become "WinForms-in-the-terminal". A lot of the capabilities borrow from WinForms and other popular GUI frameworks. We're not afraid of plagerising.

Check out the list of built-in View classes:

https://gui-cs.github.io/Terminal.Gui/articles/views.html

I'll work on updating the history section of the README to make this more clear.