FTXUI 7.0.0









Május 13-án, több mint egy év fejlesztés után, megjelent a 7.0.0 verziójú platformfüggetlen könyvtár. FTXUI, amely C++ alapú, szöveges felhasználói felülettel rendelkező alkalmazások készítésére szolgál és MIT licenc alatt terjesztik.

A könyvtár lehetőségei:

  • funkcionális stílus, hasonlóan a React JS-hez;
  • egyszerű és elegáns stílus (a könyvtár szerzője szerint);
  • billentyűzet és egér események kezelése;
  • UTF8 és Unicode támogatás;
  • True Color támogatás;
  • kurzor stílusának megváltoztatásának támogatása;
  • animációk támogatása;
  • rajzolás támogatása;
  • külső függőségek hiánya;
  • cross-platform (Linux/MacOS, WebAssembly, Windows).
Változások

kódkönyvtárra lépésével érheti el.

  • Javítva a dokumentáció generálása Doxygen-nal.
  • Saját téma került hozzáadásra a Doxygenhoz.
  • A dokumentáció több oldalra lett bontva.

Komplikáció

  • Hozzáadva a tools$ amalgamate.py szkript a 'megemesztett' forráskód generálásához: ftxui.cpp (534 KB), ftxui.hpp (110 KB) és ftxui_all.hpp (643 KB).
  • C++20 modulok támogatása hozzáadva.
  • Meson támogatás hozzáadva.
  • Eltávolítva a pthread függőség.
  • Javítva a Bazel támogatása.
  • További fejlesztések.

Visszafelé kompatibilitási változások

  • Átnevezések:
    • Pixel átnevezve Cell-re
    • Image átnevezve Surface-re
    • ScreenInteractive átnevezve App-ra
    • PixelAt metódus átnevezve CellAt-ra
      A kompatibilitás érdekében álnév és fejléc került bevezetésre, hogy a meglévő kód működését ne zavarja.
  • Használj std::string_view-t const std::string&-kel, ahol csak lehetséges. Ez jobb kompatibilitást biztosít a karakterlánc literálokkal, és elkerüli a szükségtelen másolatokat.

Összetevők

  • Javítva és modernizálva lett a jelképezési rendszer a POSIX sigaction használatával a jel maskírozás megbízhatósága érdekében. Védve van a terminál dupla visszaállása a programból való kilépéskor az alapállapot atomikus nyomon követésével. További POSIX jelek (SIGBUS, SIGSYS mint hibajelzések, és SIGQUIT, SIGHUP mint késleltetett befejezés jelei) támogatása hozzáadva, valamint az aszinkron jelek biztonsági problémái javítva.
  • Javítva a kurzor megjelenítési problémája a testreszabott Renderer használatakor beágyazott tartályokban.
  • Javítva a kurzor pozicionálása a beviteli mezőkben és a görgetés stabilitása.
  • Javítva a nem ASCII karakterek támogatása a jelszóbeviteli módban.
  • Megszüntetve a kurzor villogása a újrarajzolás során az App-ban.
  • A bemenet kezelése POSIX csövekkel.
    • Lehetővé teszi az FTXUI alkalmazások számára, hogy adatokat olvassanak be stdin-ből (cső használata esetén), miközben továbbra is fogadnak bevitelt a terminál billentyűzetéről.
    • Alapértelmezés szerint használva.
    • Kikapcsolható az App::HandlePipedInput(false) használatával.
    • Csak Linuxon és macOS-en érhető el.
  • Sok hiba javítva.

DOM

  • Sor tördelés (n) támogatása a text() és vtext() belül.
  • Most a dbox a fókuszt a felső rétekről az alsóbbakra adja át, amely megfelel a vizuális megjelenítésnek.
  • Hozzáadva a táblázat határait díszítő dekorátorok támogatása. Ez lehetővé teszi például a táblázathatárok színének megváltoztatását.
  • A teljes számérték túlcsordulási hiba javítva a ComputeShrinkHard-ban.
  • Specializáció hozzáadva a vbox/hbox/dbox-hoz, hogy az Element konténert bemeneti adatokként lehessen használni.
  • A gridbox-ban javítva a gyermek elemek hozzáadása.
  • Javítva a gauge megjelenítése.
  • Paraméterezett flex dekorátor változatokat adtunk hozzá _factor paraméterrel. Ezek lehetővé teszik a felhasználói nyújtási vagy zsugorítási együtthatók megadását:
    flex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), és verziók az x és y tengelyekhez.

Rajzolási optimalizációk

  • A kurzor mozgatásának optimalizálása a Screen::ResetPosition módszerben (képernyő törlése nélkül) egy paraméterezett CSI parancskészletre a kurzor felfelé mozgatásához (x1B[A), ahelyett, hogy egy x1B[1A-t adna ki minden egyes sorra. Ez csökkentette az átviteli karakterek számát egy képkockán belül (például ~197 -> 6 byte 50 soros képernyőn, ~33-szoros csökkenés).
  • Optimalizálva a Screen::ToString(), Color::Print() és string_width() metódusok, ami felgyorsította:
    • Alap renderelés ~27%-kal.
    • Szöveg renderelés ~27%-kal.
    • Stílusok renderelés ~38%-kal.

Forrás: linux.org.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster