FTXUI 7.0.0









13. mai, etter mer enn ett års utvikling, ble den tverrplattformbibliotekversjonen 7.0.0 lansert. FTXUI, designet for å lage C++-applikasjoner med tekstgrensesnitt og distribuert under MIT-lisensen.

Bibliotekets funksjoner:

  • funksjonell stil, lignende React JS;
  • en enkel og elegant stil (ifølge bibliotekets forfatter);
  • behandling av tastatur- og «mus»-hendelser;
  • støtte for UTF8 og Unicode;
  • støtte for True Color;
  • støtte for endring av musepekerstil;
  • støtte for animasjoner;
  • støtte for tegning;
  • ingen avhengigheter fra tredjepart;
  • tverrplattform (Linux/MacOS, WebAssembly, Windows).
Endringer

Dokumentasjon

  • Dokumentasjonsgenerering med Doxygen er fikset.
  • Egen Doxygen-tema er lagt til.
  • Dokumentasjonen er delt opp i flere sider.

Kompilering

  • Verktøy-skriptet tools$ amalgamate.py for generering av «amalgamert» kildekode har blitt lagt til: ftxui.cpp (534 KB), ftxui.hpp (110 KB) og ftxui_all.hpp (643 KB).
  • Støtte for C++20-moduler er lagt til.
  • Støtte for Meson er lagt til.
  • Avhengigheten til pthread er fjernet.
  • Støtte for Bazel er fikset.
  • Andre forbedringer.

Endringer for kompatibilitet med tidligere versjoner

  • Omdøpninger:
    • Pixel til `Cell
    • Image til Surface
    • ScreenInteractive til App
    • metoden PixelAt til CellAt
      For å sikre kompatibilitet er det laget aliaser og overskrifter, slik at eksisterende kode ikke brytes.
  • Bruk av std::string_view i stedet for const std::string& der det er mulig. Dette gir bedre kompatibilitet med strenglitteraler og unngår unødvendige kopier.

Komponenter

  • Systemet for signaloppsnaping er forbedret og modernisert ved bruk av POSIX sigaction for pålitelig signalmaskering. Beskyttelse mot dobbel terminalgjenoppretting ved programutgang er sikret gjennom atomisk sporing av den opprinnelige tilstanden. Støtte for flere POSIX-signaler (SIGBUS, SIGSYS som feilsignaler, og SIGQUIT, SIGHUP som signaler for utsatt avslutning) er lagt til, og sikkerhetsproblemer med asynkrone signaler er fikset.
  • Problemet med musepekervisning ved bruk av tilpasset Renderer i nestede containere er fikset.
  • Plasseringen av musepekeren i inputfelt og stabiliteten til rulling er fikset.
  • Støtte for ikke-ASCII-tegn i passordinputmodus er fikset.
  • Blinkingen av musepekeren ved omtegning i App er eliminert.
  • Håndtering av input ved bruk av POSIX pipes
    • Lar dei FTXUI-program vara di data frå stdin (når ein bruker pipe) og samtidig ta inn tastaturinput i terminalen.
    • Brukes som standard.
    • Kan deaktiverast ved å bruke App::HandlePipedInput(false).
    • Tilgjengelig kun i Linux og macOS.
  • Mange feil er fiksa.

DOM

  • Støtte for linjeskift (n) innom text() og vtext().
  • Nå overfører dbox fokus fra øverste lag til nederste lag, som samsvarer med den visuelle presentasjonen.
  • Støtte for kantdekoratørar i tabeller er lagt til. Dette gjer det mogleg å endre fargen på tabellkantane.
  • Fikset feil med heile tal som overgår i ComputeShrinkHard.
  • Spesialisering lagt til i vbox/hbox/dbox for å kunne bruke Element-containeren som input.
  • Fikset problemet med å legge til barneelement i gridbox.
  • Fikset visning av gauge.
  • Parameteriserte variantar av flex-dekoratørar med parameteret _factor er lagt til. Dei gjer det mogleg å spesifisere brukardefinerte vekst- eller sammentrekningsfaktorar:
    flex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), samt variantar for akser x og y.

Optimaliseringar av rendering.

  • Optimalisering av flytting av markøren gjennom linjene i metoden Screen::ResetPosition (uten å rydde skjermen) til eit parameterisert sett med CSI-kommandoar for å flytte markøren opp (x1B[A) i staden for å skrive ut eitt x1B[1A for kvar linje. Dette reduserte antallet escape-teikn per ramme under omrendering (for eksempel, ~197 -> 6 byte for ein skjerm med 50 linjer, ~33-gongs reduksjon).
  • Screen::ToString(), Color::Print() og string_width() er optimaliserte, noko som akselererte:
    • Grunnleggjande rendering med ~27%.
    • Rendering av tekst med ~27%.
    • Rendering av stilar med ~38%.

Kilde: linux.org.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster