FTXUI 7.0.0









13 maj, efter mer Àn ett Ärs utveckling, slÀpptes version 7.0.0 av det plattformsoberoende biblioteket FTXUI, designat för att skapa C++-applikationer med textgrÀnssnitt och distribueras under MIT-licensen.

Möjligheter i biblioteket:

  • funktionell stil, liknande React JS;
  • enkel och elegant stil (enligt bibliotekets författare);
  • hantering av tangentbords- och muskommandon;
  • stöd för UTF8 och Unicode;
  • stöd för True Color;
  • stöd för att Ă€ndra muspekarlayout;
  • stöd för animationer;
  • stöd för ritning;
  • inga externa beroenden;
  • plattformsoberoende (Linux/MacOS, WebAssembly, Windows).
Ändringar

Dokumentation

  • Dokumentationsgenereringen med Doxygen har Ă„tgĂ€rdats.
  • Egen tema har lagts till för Doxygen.
  • Dokumentationen har delats upp pĂ„ flera sidor.

Kompilering

  • Ett skript tools$ amalgamate.py har lagts till för att generera "amalgamerad" kĂ€llkod: ftxui.cpp (534 kB), ftxui.hpp (110 kB) och ftxui_all.hpp (643 kB).
  • Stöd för C++20-moduler har lagts till.
  • Stöd för Meson har lagts till.
  • Beroendet av pthread har tagits bort.
  • Stödet för Bazel har Ă„tgĂ€rdats.
  • Andra förbĂ€ttringar.

KompatibilitetsförÀndringar med tidigare versioner

  • Omdöpningar:
    • Pixel till `Cell
    • Image till Surface
    • ScreenInteractive till App
    • metoden PixelAt till CellAt
      För att sÀkerstÀlla kompatibilitet finns det alias och rubriker för att inte störa existerande kod.
  • AnvĂ€ndning av std::string_view istĂ€llet för const std::string& dĂ€r det Ă€r möjligt. Detta ger bĂ€ttre kompatibilitet med strĂ€ngliteraler och undviker onödiga kopior.

Komponenter

  • Systemet för signalinfĂ„ngning har förbĂ€ttrats och moderniserats med anvĂ€ndning av POSIX sigaction för pĂ„litlig maskering av signaler. Skydd mot dubbelt Ă„terstĂ€llande av terminalen vid programavslut har sĂ€kerstĂ€llts genom atomĂ€r spĂ„rning av det ursprungliga tillstĂ„ndet. Stöd för ytterligare POSIX-signaler har lagts till (SIGBUS, SIGSYS som fel signa och SIGQUIT, SIGHUP som signaler för fördröjd avslutning) och sĂ€kerhetsproblem med asynkrona signaler har Ă„tgĂ€rdats.
  • Problemet med muspekarsynlighet vid anvĂ€ndning av anpassad Renderer i inbĂ€ddade containrar har Ă„tgĂ€rdats.
  • Muspekarpositioneringen i inmatningsfĂ€lt och stabiliteten vid rullning har Ă„tgĂ€rdats.
  • Stödet för icke-ASCII-tecken i lösenordslĂ€get har Ă„tgĂ€rdats.
  • Flimret av muspekaren vid omritning i App har Ă„tgĂ€rdats.
  • Inmatningshantering med POSIX pipes
    • Möjliggör för FTXUI-appar att lĂ€sa data frĂ„n stdin (vid anvĂ€ndning av pipe) och samtidigt ta emot inmatning frĂ„n tangentbordet i terminalen.
    • AnvĂ€nds som standard.
    • Kan stĂ€ngas av med App::HandlePipedInput(false).
    • Finns endast pĂ„ Linux och macOS.
  • MĂ„nga fel har rĂ€ttats.

DOM

  • Stöd för radbrytning (n) inom text() och vtext().
  • Nu överför dbox fokus frĂ„n övre skikt till nedre, vilket motsvarar den visuella presentationen.
  • Stöd för dekorerande grĂ€nser av tabeller har lagts till. Detta gör att man till exempel kan Ă€ndra fĂ€rgen pĂ„ tabellens grĂ€nser.
  • Fel pĂ„ heltalsöverflöd i ComputeShrinkHard har Ă„tgĂ€rdats.
  • Specialisering har lagts till i vbox/hbox/dbox för att möjliggöra anvĂ€ndning av Element-container som indata.
  • Fel vid tillĂ€gg av barn i gridbox har Ă„tgĂ€rdats.
  • Visningen av gauge har Ă„tgĂ€rdats.
  • Parametriserade varianter av flex-dekorerare med parametern _factor har lagts till. De gör att man kan ange anpassade tillvĂ€xt- eller krympningsfaktorer:
    flex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), samt varianter för x- och y-axlar.

Renderingoptimeringar.

  • Optimering av markörens rörelse över rader i Screen::ResetPosition-metoden (utan att rensa skĂ€rmen) till ett parametriserat kommando CSI för att flytta markören uppĂ„t (x1B[<n>A) istĂ€llet för att skriva ut ett x1B[1A för varje rad. Detta minskade antalet escape-tecken per bild under omritning (t.ex. ~197 -> 6 byte för en skĂ€rm med 50 rader, ~33-faldig minskning).
  • Screen::ToString(), Color::Print() och string_width() har optimerats, vilket snabbar upp:
    • GrundlĂ€ggande rendering med ~27%.
    • Text-rendering med ~27%.
    • Stil-rendering med ~38%.

KĂ€lla: linux.org.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster