FTXUI 7.0.0









Më 13 maj, pas më shumë se një viti zhvillimi, u publikua versioni 7.0.0 i bibliotekës shumë-platformë. FTXUI, e cila është projektuar për të krijuar aplikacione me ndërfaqe tekstuale në C++ dhe shpërndahet nën licencën MIT.

Veçoritë e bibliotekës:

  • stil funksional, tĂ« ngjashĂ«m me React JS;
  • stil tĂ« thjeshtĂ« dhe elegant (sipas autorit tĂ« bibliotekĂ«s);
  • pĂ«rpunimi i ngjarjeve tĂ« tastierĂ«s dhe tĂ« "mausit";
  • mbĂ«shtetje pĂ«r UTF8 dhe Unicode;
  • mbĂ«shtetje pĂ«r True Color;
  • mbĂ«shtetje pĂ«r ndryshimin e stilit tĂ« kursorit;
  • mbĂ«shtetje pĂ«r animacione;
  • mbĂ«shtetje pĂ«r vizatimin;
  • mungesĂ« varĂ«sish nga palĂ« tĂ« treta;
  • shumĂ«platformĂ«si (Linux/MacOS, WebAssembly, Windows).
Ndryshimet

Dokumentacioni

  • Korrigjimi i gjenerimit tĂ« dokumentacionit me Doxygen.
  • Shtuar njĂ« temĂ« tĂ« vetme pĂ«r Doxygen.
  • Ndara dokumentacionin nĂ« disa faqe.

Kompilimi

  • Shtuar skenari tools$ amalgamate.py pĂ«r tĂ« gjeneruar kodin e 'amalgamuar': ftxui.cpp (534 KB), ftxui.hpp (110 KB) dhe ftxui_all.hpp (643 KB).
  • Shtuar mbĂ«shtetje pĂ«r modulĂ«t C++20.
  • Shtuar mbĂ«shtetje pĂ«r Meson.
  • FshirĂ« varĂ«sinĂ« nga pthread.
  • Korrigjuar mbĂ«shtetje pĂ«r Bazel.
  • PĂ«rmirĂ«sime tĂ« tjera.

Ndryshimet e pajtueshmërisë me versionet e mëparshme

  • Rinominimet:
    • Pixel nĂ« `Cell
    • Image nĂ« Surface
    • ScreenInteractive nĂ« App
    • metoda PixelAt nĂ« CellAt
      Për të siguruar pajtueshmëri, janë parashikuar pseudonime dhe tituj, për të mos prishur funksionimin e kodit ekzistues.
  • PĂ«rdorimi i std::string_view nĂ« vend tĂ« const std::string& kur Ă«shtĂ« e mundur. Kjo ofron mĂ« shumĂ« pajtueshmĂ«ri me literalet e vargjeve dhe lejon shmangien e kopjimeve tĂ« panevojshme.

Komponentët

  • PĂ«rmirĂ«suar dhe modernizuar sistemi i kapjes sĂ« sinjaleve duke pĂ«rdorur POSIX sigaction pĂ«r maskimin e sinjaleve nĂ« mĂ«nyrĂ« tĂ« besueshme. Siguruar mbrojtje nga rivendosja e dyfishtĂ« tĂ« terminalit gjatĂ« daljes nga programi duke pĂ«rdorur ndjekjen atomike tĂ« gjendjes fillestare. Shtuar mbĂ«shtetje pĂ«r sinjale tĂ« tjera POSIX (SIGBUS, SIGSYS si sinjale dĂ«shtimi, dhe SIGQUIT, SIGHUP si sinjale pĂ«r pĂ«rfundimin e vonuar) dhe zhdukur problemet e sigurisĂ« sĂ« sinjaleve asinkrone.
  • Korrigjuar problemin e shfaqjes sĂ« kursorit duke pĂ«rdorur Renderer tĂ« personalizuar nĂ« konteinerĂ«t e thelluar.
  • Korrigjuar pozicionimin e kursorit nĂ« fushat e hyrjes dhe stabilitetin e rrokullisjes.
  • Korrigjuar mbĂ«shtetje pĂ«r karakteret jo ASCII nĂ« modin e input-it tĂ« fjalĂ«kalimit.
  • Eliminimi i ndriçimit tĂ« kursorit gjatĂ« rikonstruksionit nĂ« App.
  • PĂ«rpunimi i hyrjes duke pĂ«rdorur POSIX pipes
    • Lejon aplikacionet FTXUI tĂ« lexojnĂ« tĂ« dhĂ«na nga stdin (duke pĂ«rdorur pipe) dhe gjithashtu tĂ« marrin input nga tastiera nĂ« terminal.
    • PĂ«rdoret nga qeveria.
    • Mund tĂ« çaktivizohet duke pĂ«rdorur App::HandlePipedInput(false).
    • E disponueshme vetĂ«m nĂ« Linux dhe macOS.
  • Korrigjuar shumĂ« gabime.

DOM

  • MbĂ«shtetje pĂ«r kthimin e rreshtave (n) brenda text() dhe vtext().
  • Tani dbox kalon fokusin nga layers e sipĂ«rme nĂ« ato tĂ« poshtme, qĂ« pĂ«rputhet me shfaqjen vizuale.
  • Shtuar mbĂ«shtetje pĂ«r dekoratorĂ«t e kufijve tĂ« tabelave. Kjo lejon, pĂ«r shembull, ndryshimin e ngjyrĂ«s sĂ« kufijve tĂ« tabelĂ«s.
  • Korrigjuar njĂ« gabim tĂ« mbushjes sĂ« numrit nĂ« ComputeShrinkHard.
  • Shtuar specializim nĂ« vbox/hbox/dbox pĂ«r tĂ« mundĂ«suar pĂ«rdorimin e elementit tĂ« konteinerit si hyrje.
  • NĂ« gridbox korrigjuar shtimin e elementeve fĂ«mijĂ«.
  • Korrigjuar shfaqjen e gauge.
  • Shtuar opsione tĂ« parametrizuara tĂ« dekoratorĂ«ve flex me parametrin _factor. KĂ«to lejojnĂ« pĂ«rcaktimin e koeficientĂ«ve tĂ« zgjerimit ose shtrĂ«ngimit tĂ« pĂ«rdoruesit:
    flex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), si dhe variante për aksin x dhe y.

Optimizimet e vizatimit

  • Optimizimi i lĂ«vizjes sĂ« kursorit nĂ«pĂ«r rreshta nĂ« metodĂ«n Screen::ResetPosition (pa pastrimin e ekranit) nĂ« njĂ« grup tĂ« parametrizuar tĂ« komandave CSI pĂ«r lĂ«vizjen e kursorit lart (x1B[<n>A) nĂ« vend tĂ« nxjerrjes sĂ« njĂ« x1B[1A pĂ«r secilĂ«n rresht. Kjo reduktoi numrin e simboleve tĂ« maskimit pĂ«r kornizĂ« gjatĂ« rikonstruksionit (pĂ«r shembull, ~197 -> 6 bytes pĂ«r njĂ« ekran me 50 rreshta, njĂ« reduktim 33-fish).
  • Optimizuar Screen::ToString(), Color::Print() dhe string_width(), duke pĂ«rshpejtuar:
    • Renderimi bazĂ« me ~27%.
    • Renderimi i tekstit me ~27%.
    • Renderimi i stileve me ~38%.

Burimi: linux.org.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster