On March 28, after more than a year and a half of development, versions 6.0.0 and 6.0.1 of the cross-platform library were released. FTXUI, designed for creating C++ applications with a text user interface and distributed under the MIT license.
Library capabilities:
- functional style, similar to React JS;
- simple and elegant style (in the author's opinion);
- keyboard and mouse event handling;
- support for UTF8 and Unicode;
- support for True Color;
- support for changing cursor style;
- support for animations;
- support for drawing;
- no third-party dependencies;
- cross-platform compatibility (Linux/MacOS, WebAssembly, Windows).
Change log:
- Component:
- added support for raw input, allowing for the recognition of more keys;
- added ScreenInteractive::ForceHandleCtrlC(false), allowing the component to fully override the standard Ctrl+C handler;
- added Mouse::WheelLeft and Mouse::WheelRight events;
- added Event::DebugString();
- added support for Input mode and InputOption::insert;
- added DropdownOption for customizing the dropdown list;
- added selection support and ScreenInteractive::GetSelection() and ScreenInteractive::SelectionChange(…) functions;
- added ScreenInteractive::FullscreenPrimaryScreen(), allowing the component to display on the main screen in full screen rather than on an alternative;
- added ComponentBase::Index(), allowing retrieval of the component index in its parent;
- added EntryState::index, allowing retrieval of the menu item index;
- added SliderOption::on_change, allowing the setting of a handler for slider value changes;
- Notification
- added italic decorator;
- added horizontal indicator hscroll_indicator;
- Dimension::Fit(..) added extend_beyond_screen option, allowing the element to be larger than the screen;
- added selection support and decorators:
- selectionColor;
- selectionBackgroundColor;
- selectionForegroundColor;
- selectionStyle(style);
- selectionStyleReset;
- Screen:
- added function Box::IsEmpty();
- added support for transparency and functions:
- Color::RGBA(r,g,b,a);
- Color::HSVA(r,g,b,a);
- Color::Blend(Color);
- Color::IsOpaque();
- Util:
- added support for arbitrary adapter for ConstStringListRef;
- Build:
- added support for building with CMake 'unity/jumbo';
- Bugs have been fixed.
In the screenshot — the utility rgb-tui by the author of the library.
Source: linux.org.ru
