28 marzo, dopo più di un anno e mezzo di sviluppo, sono stati rilasciati 6.0.0 e 6.0.1 della libreria cross-platform FTXUI, progettata per creare applicazioni C++ con interfacce testuali e distribuita con licenza MIT.
Caratteristiche della libreria:
- stile funzionale, simile a React JS;
- stile semplice ed elegante (secondo l'autore della libreria);
- gestione degli eventi della tastiera e del mouse;
- supporto per UTF8 e Unicode;
- supporto per True Color;
- supporto per la modifica dello stile del cursore;
- supporto per animazioni;
- supporto per il disegno;
- assenza di dipendenze esterne;
- cross-platform (Linux/MacOS, WebAssembly, Windows).
Elenco delle modifiche:
- Componente:
- aggiunto il supporto per l'input non elaborato, permettendo di definire un numero maggiore di tasti;
- aggiunta ScreenInteractive::ForceHandleCtrlC(false), che consente al componente di sovrascrivere completamente il gestore standard Ctrl+C;
- aggiunti eventi Mouse::WheelLeft e Mouse::WheelRight;
- aggiunta Event::DebugString();
- aggiunto il supporto per la modalità di inserimento Input e l'opzione InputOption::insert;
- aggiunta l'opzione DropdownOption per la configurazione del menu a discesa;
- aggiunto il supporto per la selezione e le funzioni ScreenInteractive::GetSelection() e ScreenInteractive::SelectionChange(…);
- aggiunta ScreenInteractive::FullscreenPrimaryScreen(), che consente di visualizzare un componente a schermo intero sullo schermo principale, non su quello secondario;
- aggiunta ComponentBase::Index(), che consente di ottenere l'indice del componente nel suo genitore;
- aggiunto EntryState::index, che consente di ottenere l'indice dell'elemento nel menu;
- aggiunto SliderOption::on_change, che consente di impostare un gestore per la modifica del valore del cursore;
- Document.caretPositionFromPoint()
- aggiunto un decoratore per il corsivo;
- aggiunto l'indicatore orizzontale hscroll_indicator;
- Dimension::Fit(..) aggiunta l'opzione extend_beyond_screen, che consente all'elemento di avere una dimensione maggiore dello schermo;
- aggiunto il supporto per la selezione e i decoratori:
- selectionColor;
- selectionBackgroundColor;
- selectionForegroundColor;
- selectionStyle(style);
- selectionStyleReset;
- Schermata:
- aggiunta la funzione Box::IsEmpty();
- aggiunto il supporto per la trasparenza e le funzioni:
- Color::RGBA(r,g,b,a);
- Color::HSVA(r,g,b,a);
- Color::Blend(Color);
- Color::IsOpaque();
- Util:
- aggiunto il supporto per un adattatore arbitrario per ConstStringListRef;
- Build:
- aggiunto il supporto per la compilazione con CMake «unity/jumbo»;
- Correzioni di bug.
Nello screenshot - l'utilità rgb-tui dell'autore della libreria.
Fonte: linux.org.ru
