{"id":182110,"date":"2026-06-15T14:48:51","date_gmt":"2026-06-15T12:48:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/ftxui-7-0-0"},"modified":"2026-06-15T14:48:51","modified_gmt":"2026-06-15T12:48:53","slug":"ftxui-7-0-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/ftxui-7-0-0","title":{"rendered":"FTXUI 7.0.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23598\/original.png\"><br \/>\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/e7f6f312dcd0e68f6c4a433c8a1f7428.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n        <\/a><\/p>\n<p>        <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23599\/original.png\"><br \/>\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/e8d95dc05a772de029ec8f802570b7d4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n        <\/a><\/p>\n<p>        <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23600\/original.png\"><br \/>\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/1cd61277751493f007d93a4d97577e51.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n        <\/a><\/p>\n<p>        <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23601\/original.png\"><br \/>\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/dd383576c3698b6775ac294a5ea4d5c2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n        <\/a><\/p>\n<p><noindex>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23598\/original.png\" class=\"active\"><\/a><\/noindex><\/p>\n<p>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23599\/original.png\"><\/a><\/p>\n<p>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23600\/original.png\"><\/a><\/p>\n<p>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23601\/original.png\"><\/a><\/p>\n<p>      <noindex><\/p>\n<p>Le 13 mai, apr\u00e8s plus d'un an de d\u00e9veloppement, la version 7.0.0 de la biblioth\u00e8que multiplateforme a \u00e9t\u00e9 lanc\u00e9e <a rel=\"nofollow\" href=\"https:\/\/github.com\/ArthurSonzogni\/FTXUI\">FTXUI<\/a>, destin\u00e9e \u00e0 la cr\u00e9ation d'applications C++ avec interface textuelle et distribu\u00e9e sous licence MIT.<\/p>\n<p><\/noindex><\/p>\n<p>Fonctionnalit\u00e9s de la biblioth\u00e8que :<\/p>\n<ul>\n<li>style fonctionnel, similaire \u00e0 React JS ;<\/li>\n<li>style simple et \u00e9l\u00e9gant (selon l'auteur de la biblioth\u00e8que) ;<\/li>\n<li>traitement des \u00e9v\u00e9nements du clavier et de la \u00ab souris \u00bb ;<\/li>\n<li>prise en charge de l'UTF8 et de l'Unicode ;<\/li>\n<li>prise en charge des vraies couleurs ;<\/li>\n<li>prise en charge du changement de style du curseur ;<\/li>\n<li>prise en charge des animations ;<\/li>\n<li>prise en charge du dessin ;<\/li>\n<li>absence de d\u00e9pendances externes ;<\/li>\n<li>multiplateforme (Linux\/MacOS, WebAssembly, Windows).<\/li>\n<\/ul>\n<h5>Changements<\/h5>\n<p><strong>Documentation<\/strong><\/p>\n<ul>\n<li>G\u00e9n\u00e9ration de documentation avec Doxygen corrig\u00e9e.<\/li>\n<li>Ajout d'un th\u00e8me personnalis\u00e9 pour Doxygen.<\/li>\n<li>S\u00e9paration de la documentation en plusieurs pages.<\/li>\n<\/ul>\n<p><strong>Compilation<\/strong><\/p>\n<ul>\n<li>Un script tools$ amalgamate.py a \u00e9t\u00e9 ajout\u00e9 pour g\u00e9n\u00e9rer le code source \u00ab amalgam\u00e9 \u00bb : ftxui.cpp (534 Ko), ftxui.hpp (110 Ko) et ftxui_all.hpp (643 Ko).<\/li>\n<li>Ajout de la prise en charge des modules C++20.<\/li>\n<li>Ajout de la prise en charge de Meson.<\/li>\n<li>Suppression de la d\u00e9pendance \u00e0 pthread.<\/li>\n<li>Correction de la prise en charge de Bazel.<\/li>\n<li>Autres am\u00e9liorations.<\/li>\n<\/ul>\n<p><strong>Modifications de compatibilit\u00e9 avec les versions ant\u00e9rieures<\/strong><\/p>\n<ul>\n<li>Renommages :\n<ul>\n<li>Pixel en `Cell<\/li>\n<li>Image en Surface<\/li>\n<li>ScreenInteractive en App<\/li>\n<li>m\u00e9thode PixelAt en CellAt<br \/>\nDes alias et des en-t\u00eates sont pr\u00e9vus pour assurer la compatibilit\u00e9 sans perturber le code existant.<\/li>\n<\/ul>\n<\/li>\n<li>Utilisation de std::string_view au lieu de const std::string&amp; lorsque cela est possible. Cela assure une meilleure compatibilit\u00e9 avec les litt\u00e9raux de cha\u00eene et permet d'\u00e9viter des copies inutiles.<\/li>\n<\/ul>\n<p><strong>Composants<\/strong><\/p>\n<ul>\n<li>Le syst\u00e8me d'interception des signaux a \u00e9t\u00e9 am\u00e9lior\u00e9 et modernis\u00e9 en utilisant POSIX sigaction pour un masquage fiable des signaux. Protection contre la double restauration du terminal lors de la sortie du programme gr\u00e2ce au suivi atomique de l'\u00e9tat d'origine. Prise en charge de signaux POSIX suppl\u00e9mentaires (SIGBUS, SIGSYS, en tant que signaux d'\u00e9chec, et SIGQUIT, SIGHUP, en tant que signaux de fin diff\u00e9r\u00e9e) et correction de probl\u00e8mes de s\u00e9curit\u00e9 des signaux asynchrones.<\/li>\n<li>Correction d'un probl\u00e8me d'affichage du curseur lors de l'utilisation d'un Renderer personnalisable dans des conteneurs imbriqu\u00e9s.<\/li>\n<li>Correction du positionnement du curseur dans les champs de saisie et stabilit\u00e9 du d\u00e9filement.<\/li>\n<li>Correction de la prise en charge des caract\u00e8res non ASCII en mode de saisie de mot de passe.<\/li>\n<li>\u00c9limination du scintillement du curseur lors du redessin dans l'App.<\/li>\n<li>Traitement des entr\u00e9es en utilisant les pipes POSIX.\n<ul>\n<li>Permet aux applications FTXUI de lire les donn\u00e9es \u00e0 partir de stdin (lors de l'utilisation d'un pipe) tout en acceptant toujours l'entr\u00e9e au clavier dans le terminal.<\/li>\n<li>Utilis\u00e9 par d\u00e9faut.<\/li>\n<li>Peut \u00eatre d\u00e9sactiv\u00e9 en utilisant App::HandlePipedInput(false).<\/li>\n<li>Disponible uniquement sur Linux et macOS.<\/li>\n<\/ul>\n<\/li>\n<li>De nombreuses erreurs corrig\u00e9es.<\/li>\n<\/ul>\n<p><strong>DOM<\/strong><\/p>\n<ul>\n<li>Prise en charge des sauts de ligne (n) \u00e0 l'int\u00e9rieur de text() et vtext().<\/li>\n<li>D\u00e9sormais, dbox transf\u00e8re le focus des couches sup\u00e9rieures aux couches inf\u00e9rieures, correspondant \u00e0 l'affichage visuel.<\/li>\n<li>Ajout de la prise en charge des d\u00e9corateurs de bordure de tableau. Cela permet, par exemple, de modifier la couleur des bordures du tableau.<\/li>\n<li>Correction d'une erreur de d\u00e9bordement entier dans ComputeShrinkHard.<\/li>\n<li>Ajout de sp\u00e9cialisation dans vbox\/hbox\/dbox pour permettre d'utiliser le conteneur Element comme entr\u00e9e.<\/li>\n<li>Correction de l'ajout d'\u00e9l\u00e9ments enfants dans gridbox.<\/li>\n<li>Correction de l'affichage du gauge.<\/li>\n<li>Ajout de variantes param\u00e9tr\u00e9es de d\u00e9corateurs flex avec le param\u00e8tre _factor. Ils permettent de sp\u00e9cifier des coefficients d'\u00e9tirement ou de compression personnalis\u00e9s :<br \/>\nflex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), ainsi que des variantes pour les axes x et y.<\/li>\n<\/ul>\n<p><strong>Optimisations de rendu<\/strong><\/p>\n<ul>\n<li>Optimisation du d\u00e9placement du curseur dans les lignes dans la m\u00e9thode Screen::ResetPosition (sans effacer l'\u00e9cran) en un ensemble de commandes CSI param\u00e9tr\u00e9 pour d\u00e9placer le curseur vers le haut (x1B[A) au lieu de g\u00e9n\u00e9rer un x1B[1A pour chaque ligne. Cela a r\u00e9duit le nombre de caract\u00e8res d'\u00e9chappement par image lors du redessinage (par exemple, ~197 -&gt; 6 octets pour un \u00e9cran de 50 lignes, r\u00e9duction d'environ 33 fois).<\/li>\n<li>Optimis\u00e9s Screen::ToString(), Color::Print() et string_width(), ce qui a acc\u00e9l\u00e9r\u00e9 :\n<ul>\n<li>Le rendu de base d'environ 27%.<\/li>\n<li>Le rendu de texte d'environ 27%.<\/li>\n<li>Le rendu de styles d'environ 38%.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Source : <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/development\/18319693\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>13 \u043c\u0430\u044f, \u043f\u043e\u0441\u043b\u0435 \u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a 7.0.0 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 FTXUI, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0430 C++ \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c\u043e\u0439 \u043f\u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 MIT. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438: \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c, \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 React JS; \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c (\u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u0430\u0432\u0442\u043e\u0440\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438); \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u00ab\u043c\u044b\u0448\u0438\u00bb; \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 UTF8 \u0438 Unicode; \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 True Color; \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-182110","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/ftxui-7-0-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47FTXUI 7.0.0 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/ftxui-7-0-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-06-15T12:48:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-06-15T12:48:53+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47FTXUI 7.0.0 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/ftxui-7-0-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47FTXUI 7.0.0 | ProHoster","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/ftxui-7-0-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-06-15T12:48:53+00:00","article:modified_time":"2026-06-15T12:48:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"182110","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-08-05 12:22:22","updated":"2026-08-05 12:22:22","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/182110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=182110"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/182110\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=182110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=182110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=182110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}