FTXUI 7.0.0









Den 13. maj, efter mere end et års udvikling, blev version 7.0.0 af biblioteket på tværs af platforme udgivet. FTXUI, designet til at skabe C++-applikationer med en tekstgrænseflade og distribueret under MIT-licensen.

Bibliotekets funktioner:

  • funktionel stil, der ligner React JS;
  • enkel og elegant stil (ifølge forfatteren af ​​biblioteket);
  • håndtering af tastatur- og musebegivenheder;
  • UTF8 og Unicode-understøttelse;
  • True Color support;
  • understøttelse af ændring af markørstil;
  • animationsstøtte;
  • tegning støtte;
  • ingen tredjepartsafhængigheder;
  • tværplatform (Linux/MacOS, WebAssembly, Windows).
ændringer

Records

  • Rettelse af dokumentationsgenerering med Doxygen.
  • Tilføjet brugerdefineret tema til Doxygen.
  • Opdeling af dokumentation på flere sider.

Samling

  • Tilføjet tools$ amalgamate.py-scriptet til at generere "amalgamated" kildekode: ftxui.cpp (534 KB), ftxui.hpp (110 KB) og ftxui_all.hpp (643 KB).
  • Tilføjet understøttelse af C++20-moduler.
  • Tilføjet understøttelse af Meson.
  • Fjernet afhængighed af pthread.
  • Fast Bazel-understøttelse.
  • Andre forbedringer.

Ændringer i kompatibilitet med tidligere versioner

  • Omdøbning:
    • Pixel i `Celle
    • Billede i overfladen
    • ScreenInteractive i appen
    • PixelAt-metoden i CellAt
      For at sikre kompatibilitet angives aliasser og headere for at undgå at ødelægge eksisterende kode.
  • Brug std::string_view i stedet for const std::string& hvor det er muligt. Dette sikrer bedre kompatibilitet med strengliteraler og undgår unødvendig kopiering.

Komponenter

  • Signalopfangningssystemet er blevet forbedret og moderniseret ved hjælp af POSIX sigaction for pålidelig signalmaskering. Beskyttelse mod dobbelt terminalgendannelse ved programafslutning ydes ved hjælp af atomisk initialtilstandssporing. Understøttelse af yderligere POSIX-signaler (SIGBUS og SIGSYS som fejlsignaler og SIGQUIT og SIGHUP som forsinkede afslutningssignaler) er blevet tilføjet, og sikkerhedsproblemer med asynkrone signaler er blevet rettet.
  • Rettede et problem med markørvisning, når en brugerdefineret Renderer blev brugt i indlejrede containere.
  • Rettede markørplacering i inputfelter og rullestabilitet.
  • Rettelse af understøttelse af ikke-ASCII-tegn i adgangskodeindtastningstilstand.
  • Rettede fejl i markørflimmer ved gentegning i appen.
  • Inputbehandling ved hjælp af POSIX-pipes
    • Tillader FTXUI-applikationer at læse fra stdin (når en pipe bruges), mens de stadig accepterer tastaturinput i terminalen.
    • Bruges som standard.
    • Kan deaktiveres ved hjælp af App::HandlePipedInput(false).
    • Fås kun i Linux и macOS.
  • Mange fejl er blevet rettet.

DOM

  • Understøttelse af linjeskift (n) i text() og vtext().
  • Nu flytter dbox fokus fra de øverste lag til de nederste, hvilket matcher den visuelle visning.
  • Tilføjet understøttelse af bordkantdekoratører. Dette giver dig mulighed for f.eks. at ændre farven på bordkanter.
  • Rettede en fejl med heltalsoverløb i ComputeShrinkHard.
  • Tilføjet specialisering til vbox/hbox/dbox for at tillade brug af en Element-container som input.
  • Tilføjelse af underelementer til gridbox er blevet rettet.
  • Fast målervisning.
  • Parameteriserede varianter af flex-dekoratorer med _factor-parameteren er blevet tilføjet. Disse giver dig mulighed for at angive brugerdefinerede stræk- eller krympefaktorer:
    flex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), samt varianter for x- og y-akserne.

Renderingsoptimeringer

  • Optimering af linje-for-linje markørbevægelse i Screen::ResetPosition-metoden (uden at rydde skærmen) til ét parametriseret sæt af CSI-kommandoer til at flytte markøren op (x1B[ A) i stedet for at udskrive én x1B[1A pr. linje. Dette reducerede antallet af escape-tegn pr. frame under gentegning (f.eks. ~197 -> 6 bytes for en 50-linjers skærm, ~33x reduktion).
  • Optimerede Screen::ToString(), Color::Print() og string_width(), hvilket øgede hastigheden:
    • Basisgengivelse på ~27%.
    • Tekstgengivelse med ~27%.
    • Stilgengivelse med ~38%.

Kilde: linux.org.ru

Køb pålidelig hosting til websteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster