FTXUI 6.0.0 и 6.0.1

28 марта, после более полутора лет разработки, состоялись выпуски 6.0.0 и 6.0.1 кроссплатформенной библиотеки FTXUI, предназначенной для создания на C++ приложений с текстовым интерфейсом и распространяемой по лицензии MIT.
Возможности библиотеки:
- функциональный стиль, наподобие React JS;
- простой и элегантный стиль (по мнению автора библиотеки);
- обработка событий клавиатуры и «мыши»;
- поддержка UTF8 и Unicode;
- поддержка True Color;
- поддержка изменения стиля курсора;
- поддержка анимаций;
- поддержка рисования;
- отсутствие сторонних зависимостей;
- кроссплатформенность (Linux/MacOS, WebAssembly, Windows).
Список изменений:
- Component:
- добавлена поддержка необработанного ввода, что позволило определять большее количество клавиш;
- добавлена
ScreenInteractive::ForceHandleCtrlC(false)
, позволяющая компоненту полностью переопределить стандартный обработчик Ctrl+C; - добавлены события
Mouse::WheelLeft
иMouse::WheelRight
; - добавлена
Event::DebugString()
; - добавлена поддержка режима вставки
Input
и опцияInputOption::insert
; - добавлена опция
DropdownOption
для настройки выпадающего списка; - добавлены поддержка выделения и функции
ScreenInteractive::GetSelection()
иScreenInteractive::SelectionChange(...)
; - добавлена
ScreenInteractive::FullscreenPrimaryScreen()
, позволяющая отображать полноэкранный компонент на основном экране, а не на альтернативном; - добавлена
ComponentBase::Index()
, позволящая получить индекс компонента в его родителе; - добавлена
EntryState::index
, позволящая получить индекс пункта меню; - добавлена
SliderOption::on_change
, позволящая установить обработчик изменения значения ползунка;
- DOM:
- добавлен декоратор курсива;
- добавлен горизонтальный индикатор
hscroll_indicator
; Dimension::Fit(..)
добавлена опцияextend_beyond_screen
, позволяющая элементу иметь размер больше экрана;- добавлены поддержка выделения и декораторы:
selectionColor
;selectionBackgroundColor
;selectionForegroundColor
;selectionStyle(style)
;selectionStyleReset
;
- Screen:
- добавлена функция
Box::IsEmpty()
; - добавлены поддержка прозрачности и функции:;
Color::RGBA(r,g,b,a)
;Color::HSVA(r,g,b,a)
;Color::Blend(Color)
;Color::IsOpaque()
;
- добавлена функция
- Util:
- добавлена поддержка произвольного адаптера для
ConstStringListRef
;
- добавлена поддержка произвольного адаптера для
- Build:
- добавлена поддержка сборки с CMake «unity/jumbo»;
- Исправлены ошибки.
На скриншоте — утилита rgb-tui от автора библиотеки.
>>> Подробности на GitHub