FTXUI 7.0.0









13. maja, po več kot enem letu razvoja, je izšla različica 7.0.0 cross-platform knjižnice FTXUI, namenjena razvoju aplikacij v C++ s tekstovnim uporabniškim vmesnikom in distribuirana pod MIT licenco.

Možnosti knjižnice:

  • funkcionalen slog, podoben React JS;
  • preprost in eleganten slog (po mnenju avtorja knjižnice);
  • obravnava dogodkov s tipkovnice in mišice;
  • podpora za UTF8 in Unicode;
  • podpora za True Color;
  • podpora za spremembo sloga kazalca;
  • podpora za animacije;
  • podpora za risanje;
  • odsotnost zunanjih odvisnosti;
  • cross-platform (Linux/MacOS, WebAssembly, Windows).
Wijzigingen

Dokumentacija

  • Odpravljena težava pri generiranju dokumentacije z Doxygen.
  • Dodana lastna tema za Doxygen.
  • Dokumentacija razdeljena na več strani.

Kompilacija

  • Dodana skripta tools$ amalgamate.py za generiranje 'amalgamiranega' izvornega kode: ftxui.cpp (534 KB), ftxui.hpp (110 KB) in ftxui_all.hpp (643 KB).
  • Dodana podpora za C++20 module.
  • Dodana podpora za Meson.
  • Odpravljena odvisnost od pthread.
  • Odpravljena podpora za Bazel.
  • Druge izboljšave.

Spremembe združljivosti s prejšnjimi različicami

  • Preimenovanja:
    • Pixel v `Cell
    • Image v Surface
    • ScreenInteractive v App
    • metoda PixelAt v CellAt
      Za zagotovitev združljivosti so dodani vzdevki in glave, da ne bi motili delovanja obstoječega kode.
  • Uporaba std::string_view namesto const std::string& tam, kjer je to mogoče. To zagotavlja boljšo združljivost s knjižnimi literali in preprečuje nepotrebno kopiranje.

Komponente

  • Izboljšan in moderniziran sistem zajemanja signalov z uporabo POSIX sigaction za zanesljivo maskiranje signalov. Zavarovan pred dvojno obnovitvijo terminala pri izhodu iz programa z atomskim sledenjem začetnemu stanju. Dodana podpora za dodatne POSIX signale (SIGBUS, SIGSYS kot signale napake, in SIGQUIT, SIGHUP kot signale odloženega zaključka) ter odpravljene težave z varnostjo pri asinhronih signalih.
  • Odpravljena težava s prikazom kazalca pri uporabi prilagojenega Renderer v vgnjenih posodah.
  • Odpravljeno pozicioniranje kazalca v vnosnih poljih in stabilnost pomikanja.
  • Odpravljena podpora za ne-ASCII znake v načinu vnosa gesla.
  • Odpravljeno migotanje kazalca pri ponovnem risanju v App.
  • Obravnava vnosa z uporabo POSIX cevi
    • Omogoča aplikacijam FTXUI branje podatkov iz stdin (ob uporabi pipe) in hkrati sprejema vhod z računalniške tipkovnice v terminalu.
    • Uporablja se privzeto.
    • Lahko se izklopi z uporabo App::HandlePipedInput(false).
    • Na voljo le v Linuxu in macOS.
  • Odpravljene številne napake.

DOM

  • Podpora za prelome vrstic (n) znotraj text() in vtext().
  • Zdaj dbox prenese fokus iz zgornjih plasti na spodnje, kar ustreza vizualnemu prikazu.
  • Dodana podpora za dekoratorje robov tabel. To omogoča, na primer, spreminjanje barve robov tabele.
  • Odpravljena napaka s celotnim številom v ComputeShrinkHard.
  • Dodana specializacija v vbox/hbox/dbox, da je možno uporabiti Element kot vhodne podatke.
  • V gridboxu odpravljeno dodajanje podrejenih elementov.
  • Odpravljeno prikazovanje gauge.
  • Dodane parametrične različice dekoratorjev flex s parametrom _factor. Omogočajo določanje uporabniških razmerij raztezanja ali stiskanja:
    flex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), ter različice za osi x in y.

Optimizacije risanja

  • Optimizacija premika kazalca po vrsticah v metodi Screen::ResetPosition (brez brisanja zaslona) v en parametrično določen niz ukazov CSI za premik kazalca navzgor (x1B[<n>A) namesto izpisa enega x1B[1A za vsako vrstico. To je zmanjšalo število escape znakov na okvir med prenovo (npr. ~197 -> 6 bajtov za zaslon s 50 vrsticami, ~33-kratno zmanjšanje).
  • Optimizirani Screen::ToString(), Color::Print() in string_width(), kar je pospešilo:
    • Osnovno upodabljanje za ~27%.
    • Upodabljanje besedila za ~27%.
    • Upodabljanje slogov za ~38%.

Izvor: linux.org.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster