Am 28. März, nach mehr als anderthalb Jahren Entwicklung, fanden die Veröffentlichungen 6.0.0 und 6.0.1 der plattformübergreifenden Bibliothek statt FTXUI, die zur Erstellung von C++-Anwendungen mit textbasierten Schnittstellen gedacht ist und unter der MIT-Lizenz verbreitet wird.
Funktionen der Bibliothek:
- funktionaler Stil, ähnlich wie bei React JS;
- ein einfacher und eleganter Stil (laut Meinung des Bibliotheksautors);
- Verarbeitung von Tastatur- und „Maus“-Ereignissen;
- Unterstützung von UTF8 und Unicode;
- Unterstützung von True Color;
- Unterstützung der Cursorstiländerung;
- Unterstützung von Animationen;
- Unterstützung von Zeichnen;
- keine externen Abhängigkeiten;
- Plattformunabhängigkeit (Linux/MacOS, WebAssembly, Windows).
Änderungsprotokoll:
- Komponente:
- Unterstützung für rohen Eingaben hinzugefügt, was die Definition einer größeren Anzahl von Tasten ermöglichte;
- ScreenInteractive::ForceHandleCtrlC(false) hinzugefügt, was es der Komponente ermöglicht, den Standard-Ctrl+C-Handler vollständig zu überschreiben;
- Ereignisse Mouse::WheelLeft und Mouse::WheelRight hinzugefügt;
- Event::DebugString(); hinzugefügt;
- Unterstützung für den Eingabemodus und die Option InputOption::insert hinzugefügt;
- DropdownOption hinzugefügt, um das Dropdown-Menü anzupassen;
- Unterstützung für Auswahl und Funktionen ScreenInteractive::GetSelection() und ScreenInteractive::SelectionChange(...); hinzugefügt;
- ScreenInteractive::FullscreenPrimaryScreen() hinzugefügt, um das Anzeigen einer Vollbildkomponente auf dem Hauptscreen zu ermöglichen, anstatt auf dem alternativen;
- ComponentBase::Index() hinzugefügt, um den Index der Komponente im Elternteil zu erhalten;
- EntryState::index hinzugefügt, um den Index des Menüpunkts zu erhalten;
- SliderOption::on_change hinzugefügt, um einen Handler für die Veränderung des Schiebereglerwerts festzulegen;
- DOM:
- Kursivdekorator hinzugefügt;
- Horizontaler Indikator hscroll_indicator hinzugefügt;
- Dimension::Fit(..) hinzugefügt, um die Option extend_beyond_screen zu ermöglichen, damit das Element größer als der Bildschirm sein kann;
- Unterstützung für Auswahl und Dekoratoren hinzugefügt:
- selectionColor;
- selectionBackgroundColor;
- selectionForegroundColor;
- selectionStyle(style);
- selectionStyleReset;
- Bildschirm:
- 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();
- Nutzung:
- Unterstützung für beliebigen Adapter für ConstStringListRef hinzugefügt;
- Build:
- Unterstützung für den Bau mit CMake „unity/jumbo“ hinzugefügt;
- Fehler behoben.
Auf dem Screenshot — die Utility rgb-tui vom Autor der Bibliothek.
Quelle: linux.org.ru
