Am 28. März, nach über anderthalb Jahren Entwicklung, wurden die Versionen 6.0.0 und 6.0.1 der plattformübergreifenden Bibliothek veröffentlicht FTXUI, die zur Erstellung von C++-Anwendungen mit textbasiertem Interface gedacht ist und unter der MIT-Lizenz verbreitet wird.
Funktionen der Bibliothek:
- funktionaler Stil, ähnlich wie React JS;
- einfacher und eleganter Stil (laut dem Autor der Bibliothek);
- Bearbeitung von Tastatur- und 'Maus'-Ereignissen;
- Unterstützung von UTF8 und Unicode;
- Unterstützung von True Color;
- Unterstützung für Cursorstiländerungen;
- Unterstützung von Animationen;
- Unterstützung von Grafikoperationen;
- keine externen Abhängigkeiten;
- Plattformübergreifende Kompatibilität (Linux/MacOS, WebAssembly, Windows).
Änderungsprotokoll:
- Komponente:
- Unterstützung für Rohdaten-Input hinzugefügt, was die Erkennung einer größeren Anzahl von Tasten ermöglicht;
- ScreenInteractive::ForceHandleCtrlC(false) hinzugefügt, damit die Komponente den Standard-Handler für Ctrl+C vollständig überschreiben kann;
- Ereignisse Mouse::WheelLeft und Mouse::WheelRight hinzugefügt;
- Event::DebugString() hinzugefügt;
- Unterstützung für den Einfügemodus von Input und die Option InputOption::insert hinzugefügt;
- DropdownOption hinzugefügt zur Anpassung der Dropdown-Liste;
- Unterstützung für Auswahl und Funktionen ScreenInteractive::GetSelection() und ScreenInteractive::SelectionChange(…) hinzugefügt;
- ScreenInteractive::FullscreenPrimaryScreen() hinzugefügt, um ein Vollbildkomponenten auf dem Hauptbildschirm anzuzeigen, anstatt auf einem alternativen;
- ComponentBase::Index() hinzugefügt, um den Index des Komponents im Eltern-Element abzurufen;
- EntryState::index hinzugefügt, um den Index des Menüeintrags abzurufen;
- SliderOption::on_change hinzugefügt, um einen Handler für die Änderung des Schiebewert zu setzen;
- DOM:
- Eine Kursivschrift-Dekorator hinzugefügt;
- Einen horizontalen Indikator hscroll_indicator hinzugefügt;
- Dimension::Fit(..) hat die Option extend_beyond_screen hinzugefügt, um dem Element eine Größe größer als den Bildschirm zu ermöglichen;
- Unterstützung für Auswahl und Dekoratoren hinzugefügt:
- selectionColor;
- selectionBackgroundColor;
- selectionForegroundColor;
- selectionStyle(style);
- selectionStyleReset;
- Screen:
- Die Funktion Box::IsEmpty() hinzugefügt;
- Unterstützung für Transparenz und Funktionen hinzugefügt:
- Color::RGBA(r,g,b,a);
- Color::HSVA(r,g,b,a);
- Color::Blend(Color);
- Color::IsOpaque();
- Util:
- Unterstützung für einen beliebigen Adapter für ConstStringListRef hinzugefügt;
- Build:
- Unterstützung für das Build mit CMake «unity/jumbo» hinzugefügt;
- Fehler behoben.
Auf dem Screenshot — das Utility rgb-tui vom Autor der Bibliothek.
Quelle: linux.org.ru
