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 от автора библиотеки.
Источник: linux.org.ru
