28 marca, po ponad półtora roku prac, miały miejsce wydania 6.0.0 oraz 6.0.1 wieloplatformowej biblioteki FTXUI, przeznaczonej do tworzenia aplikacji z interfejsem tekstowym w C++ i rozpowszechnianej na licencji MIT.
Możliwości biblioteki:
- styl funkcyjny, podobny do React JS;
- prosty i elegancki styl (zgodnie z opinią autora biblioteki);
- obsługa zdarzeń z klawiatury i „myszy”;
- wsparcie dla UTF8 i Unicode;
- wsparcie dla True Color;
- wsparcie dla zmiany stylu kursora;
- wsparcie dla animacji;
- wsparcie dla rysowania;
- brak zewnętrznych zależności;
- wieloplatformowość (Linux/MacOS, WebAssembly, Windows).
Lista zmian:
- Komponent:
- dodano wsparcie dla nieprzetworzonego wejścia, co pozwoliło na rozpoznawanie większej liczby klawiszy;
- dodano ScreenInteractive::ForceHandleCtrlC(false), pozwalające komponentowi całkowicie zdefiniować standardowy handler Ctrl+C;
- dodano zdarzenia Mouse::WheelLeft i Mouse::WheelRight;
- dodano Event::DebugString();
- dodano wsparcie dla trybu wstawiania Input i opcję InputOption::insert;
- dodano opcję DropdownOption do konfigurowania listy rozwijanej;
- dodano wsparcie dla zaznaczania i funkcje ScreenInteractive::GetSelection() oraz ScreenInteractive::SelectionChange(…);
- dodano ScreenInteractive::FullscreenPrimaryScreen(), pozwalające na wyświetlanie komponentu w trybie pełnoekranowym na głównym ekranie, a nie na alternatywnym;
- dodano ComponentBase::Index(), pozwalające uzyskać indeks komponentu w jego rodzicu;
- dodano EntryState::index, pozwalające uzyskać indeks punktu menu;
- dodano SliderOption::on_change, pozwalające ustawić handler zmiany wartości suwaka;
- DOM:
- dodano dekorator kursywy;
- dodano poziomy wskaźnik hscroll_indicator;
- Dimension::Fit(..) dodano opcję extend_beyond_screen, pozwalającą elementowi mieć rozmiar większy niż ekran;
- dodano wsparcie dla zaznaczania i dekoratorów:
- selectionColor;
- selectionBackgroundColor;
- selectionForegroundColor;
- selectionStyle(style);
- selectionStyleReset;
- Ekran:
- dodano funkcję Box::IsEmpty();
- dodano wsparcie dla przezroczystości i funkcji:
- Color::RGBA(r,g,b,a);
- Color::HSVA(r,g,b,a);
- Color::Blend(Color);
- Color::IsOpaque();
- Util:
- dodano wsparcie dla dowolnego adaptera dla ConstStringListRef;
- Budowa:
- dodano wsparcie dla budowy z CMake „unity/jumbo”;
- Naprawiono błędy.
Na zrzucie ekranu — narzędzie rgb-tui od autora biblioteki.
Źródło: linux.org.ru
