Цель данной разработки - создать простой инструмент для построения текстового интерфейса (TUI) на сценарном языке OneScript.
TUI – это сокращение для text-based user interface (текстовый пользовательский интерфейс) или terminal user interface (терминальный пользовательский интерфейс). Слово "текстовый" в этом словосочетании означает, что всё показанное на экране, представляет собой большой текст – набор символов, с помощью которого имитируются различные элементы управления, а слово "терминальный" – что обратиться к этому интерфейсу возможно только из терминала.
Как правило работа сценариев OneScript выполняется в режиме терминала (консоли). Дополнительные возможности по представлению результатов выполнения сценария могли бы улучшить взаимодействие пользователя и компьютера. Это может быть выделение текста цветом, вывод данных в структурированном виде в таблицу, индикация прогресса выполнения, окна, кнопки, списки и многое другое, что доступно в графическом пользовательском интерфейсе (GUI).
Библиотека основана на разработке Terminal.Gui, распространяемой под лицензией MIT License.
Все визуальные элементы наследуются от класса Элемент (View). Класс Элемент (View) обеспечивает минимальную функциональность элемента пользовательского интерфейса, такую как расположение, размер, цвет, текст, а также общие события для обработки ввода с клавиатуры и мыши. Расположение визуальных элементов может быть абсолютным (СтильКомпоновки.Абсолютно (LayoutStyle.Absolute)) или вычисляемым (СтильКомпоновки.Вычислено (LayoutStyle.Computed)). Абсолютное расположение позволяет разработчикам указывать точную строку и столбец в терминале, где должен быть размещён верхний левый угол элемента. Компоновка автоматически размещает элементы в терминале в соответствии с ограничениями, заданными разработчиком с помощью классов Позиция (Pos) и Величина (Dim). Почти каждый элемент может быть контейнером для произвольного количества дочерних элементов.
Есть возможность создать панель меню, а также всплывающие контекстные меню. Для отображения дополнительной информации в нижней части экрана можно создать панель состояния.
.