Après six mois de développement, la sortie d'une boîte à outils multiplateforme pour créer une interface utilisateur graphique a été publiée - GTK 4.22. GTK 4 est développé dans le cadre d'un processus de développement visant à fournir aux développeurs d'applications une API stable et prise en charge sur plusieurs années, qui peut être utilisée sans craindre de devoir refaire des applications tous les six mois en raison des changements d'API dans la prochaine branche GTK.
Les améliorations notables de GTK 4.22 incluent :
- Un système intégré de rendu et d'analyse d'images SVG a été ajouté. Il prend en charge l'animation et permet la création d'icônes animées, d'éléments d'interface interactifs et d'indicateurs dynamiques, tels que des barres de progression. GtkSvg s'intègre directement à la bibliothèque GSK (GTK Scene Kit), qui permet le rendu de scènes graphiques via OpenGL et Vulkan. La bibliothèque librsvg, utilisée auparavant pour le rendu des icônes SVG, n'est plus requise.
La classe Gtk.Svg est conçue pour la manipulation du format SVG, éliminant ainsi les dépendances externes lors du rendu d'icônes vectorielles et de ressources applicatives. Cette implémentation du format SVG est spécifiquement conçue pour GTK et réussit avec succès 1 250 des 1 616 tests de compatibilité de la suite resvg (à titre de comparaison, Firefox réussit 1 385 tests, librsvg 1 168 et QtSvg 591).
- Le widget GtkPopoverBin a été ajouté, simplifiant ainsi l'intégration de menus contextuels et de boîtes de dialogue déroulantes à d'autres widgets. GtkPopoverBin peut servir de conteneur pour intégrer des fonctionnalités de fenêtres contextuelles à des widgets qui ne les prennent pas en charge nativement.
- Un nouveau type d'expression, GtkTryExpression, a été ajouté, permettant la définition d'opérations de repli. GtkTryExpression tente d'exécuter chaque expression de la liste jusqu'à ce que l'une d'elles réussisse.
- Un nouveau format d'icône symbolique a été implémenté, prenant en charge l'animation et les changements d'état (par exemple, pour indiquer une activité). La propriété CSS « -gtk-icon-weight » a été ajoutée pour contrôler la largeur des icônes. Une application de démonstration, org.gtk.Shaper, a été ajoutée ; elle implémente un éditeur pour ce nouveau format d'icône symbolique.

- Le backend basé sur Wayland inclut désormais une prise en charge expérimentale du protocole xx-session-management, qui permet de restaurer l'état des fenêtres des sessions interrompues (par exemple, après un plantage du gestionnaire de composition). Pour activer cette fonctionnalité, définissez la variable d'environnement « GDK_DEBUG=session-mgmt ».
- L'API GtkApplication prend désormais en charge la sauvegarde d'état via le protocole xx-session-management. Dans GNOME 50, cette fonctionnalité permet de sauvegarder les sessions et de restaurer la position des fenêtres.
- Le portail freedesktop.portal.Settings permet d'accéder aux paramètres du backend Wayland.
- L'API GtkFileLauncher permet d'accéder aux fichiers en écriture lorsqu'elle est utilisée dans des packages Flatpak.
- GSK (GTK Scene Kit) ajoute la prise en charge du profilage et la possibilité de décaler les pixels de l'image source en fonction d'une carte de déplacement pour créer des effets graphiques complexes.
- Ajout de l'API GskRenderNodeReplay pour la gestion de l'arborescence des nœuds de rendu.
- De nouveaux types de nœuds de dessin, « copier » et « coller », ont été ajoutés, vous permettant de copier et de coller la zone située sous l'élément actuel vers un autre emplacement dans le graphe de scène.
- Ajout d'un nouveau type de nœud de rendu, « composite », qui permet des opérations de composition supplémentaires lors du dessin d'un élément sur un arrière-plan, telles que le masquage.
- La propriété « background-filter » a été ajoutée au CSS pour appliquer des effets à la zone d'arrière-plan, tels que le flou d'arrière-plan.
- CSS prend désormais en charge le paramètre « reduced-motion », qui indique la nécessité de minimiser l'utilisation des animations.
Source: opennet.ru

