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 от автора библиотеки.










