Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Aller au contenu

« GTK (boîte à outils) » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Antistress (discuter | contributions)
MonsieurJST (discuter | contributions)
Fonctionnalité de suggestions de liens : 3 liens ajoutés.
Balises : Éditeur visuel Modification par mobile Modification par le web mobile Tâche pour novices Suggéré : ajouter des liens
 
(24 versions intermédiaires par 10 utilisateurs non affichées)
Ligne 30 : Ligne 30 :
[[File:Free and open-source-software display servers and UI toolkits.svg|thumb|[[Wayland]], libwayland-client et GTK|alt=]]
[[File:Free and open-source-software display servers and UI toolkits.svg|thumb|[[Wayland]], libwayland-client et GTK|alt=]]


'''GTK''' ({{lang|en|''The '''G'''IMP '''T'''ool'''k'''it''}}, anciennement '''GTK+'''<ref>{{Lien web|auteur=Jonathan Corbet|titre=GTK+ renamed to GTK|jour=8|mois=2|année=2019|url=https://lwn.net/Articles/779305/|site=[[LWN.net]]|langue=en|consulté le=9 février 2019}}.</ref>) est un ensemble de [[Bibliothèque logicielle|bibliothèques logicielles]], c'est-à-dire un ensemble de [[fonction (informatique)|fonctions]] permettant de réaliser des interfaces graphiques. Cette bibliothèque a été développée originellement pour les besoins du [[logiciel]] de traitement d'images [[GIMP]]. GTK+ est maintenant utilisé dans de nombreux projets, dont les environnements de bureau [[GNOME]], [[Xfce]], [[Lxde]] et [[ROX Desktop|ROX]].
'''GTK''' ({{lang|en|''The '''G'''IMP '''T'''ool'''k'''it''}}, anciennement '''GTK+'''<ref>{{Lien web|auteur=Jonathan Corbet|titre=GTK+ renamed to GTK|jour=8|mois=2|année=2019|url=https://lwn.net/Articles/779305/|site=[[LWN.net]]|langue=en|consulté le=9 février 2019}}.</ref>) est un ensemble de [[Bibliothèque logicielle|bibliothèques logicielles]], c'est-à-dire un ensemble de [[fonction (informatique)|fonctions]] permettant de réaliser des [[Interface graphique|interfaces graphiques]]. Cette bibliothèque a été développée originellement pour les besoins du [[logiciel]] de traitement d'images [[GIMP]]. GTK+ est maintenant utilisé dans de nombreux projets, dont les environnements de bureau [[GNOME]], [[Xfce]], [[Lxde]] et [[ROX Desktop|ROX]].


GTK est un projet [[Logiciel libre|libre]] (licence [[Licence publique générale limitée GNU|GNU LGPL 2.1]]) et [[multiplate-forme]].
GTK est un projet [[Logiciel libre|libre]] (licence [[Licence publique générale limitée GNU|GNU LGPL 2.1]]) et [[multiplate-forme]].


== Langages ==
== Langages ==
GTK est écrit en [[C (langage)|langage C]] et utilise pourtant le [[paradigme (programmation)|paradigme]] de la [[programmation orientée objet]]<ref>''GTK+ has a C-based object-oriented architecture that allows for maximum flexibility''[http://developer.gnome.org/doc/API/2.0/gtk/gtk.html]</ref>. Il est également possible d'utiliser GTK dans de nombreux autres [[Langage de programmation|langages de programmation]]<ref>[http://www.gtk.org/language-bindings.php Bindings GTK+]</ref>: [[C++]] (avec [[gtkmm]]), [[C sharp|C#]] et [[Visual Basic]] ([[Gtk Sharp|Gtk#]]), [[F sharp|F#]] ([[Gtk Sharp|Gtk#]]), [[Java (langage)|Java]] ({{lien|fr=java-gnome|lang=en}}), [[JavaScript]], [[Perl (langage)|Perl]], [[Python (langage)|Python]], [[Vala (langage de programmation)|Vala]], [[Ada (langage)|Ada]], [[D (langage)|D]], [[Fortran]], [[Haskell]], [[OCaml]], [[PHP: Hypertext Preprocessor|PHP]], [[Ruby]] ({{Lien|langue=tr|trad=Ruby-GNOME2|fr=Ruby-GNOME2|texte=Ruby-GNOME2}}), [[Rust (langage)|Rust]], etc.
GTK est écrit en [[C (langage)|langage C]] et utilise pourtant le [[paradigme (programmation)|paradigme]] de la [[programmation orientée objet]]<ref>''GTK+ has a C-based object-oriented architecture that allows for maximum flexibility''[http://developer.gnome.org/doc/API/2.0/gtk/gtk.html]</ref> grâce à la bibliothèque [[GObject]]. Il est également possible d'utiliser GTK dans de nombreux autres [[Langage de programmation|langages de programmation]]<ref>[https://www.gtk.org/docs/language-bindings/ Bindings GTK+]</ref>: [[C++]] (avec [[gtkmm]]), [[C sharp|C#]] et [[Visual Basic]] ([[Gtk Sharp|Gtk#]]), [[F sharp|F#]] ([[Gtk Sharp|Gtk#]]), [[Java (langage)|Java]] ({{lien|fr=java-gnome|lang=en}}), [[JavaScript]], [[Perl (langage)|Perl]], [[Python (langage)|Python]], [[Vala (langage de programmation)|Vala]], [[Ada (langage)|Ada]], [[D (langage)|D]], [[Fortran]], [[Haskell]], [[OCaml]], [[PHP: Hypertext Preprocessor|PHP]], [[Ruby]] ({{Lien|langue=tr|trad=Ruby-GNOME2|fr=Ruby-GNOME2|texte=Ruby-GNOME2}}), [[Rust (langage)|Rust]], etc.


== Apparence ==
== Apparence ==
Ligne 45 : Ligne 45 :
GTK+2 a succédé à GTK+1.2, marquant une rupture de compatibilité. Ainsi, les applications basées sur GTK+1.2 et souhaitant utiliser GTK+2 ont dû être adaptées.
GTK+2 a succédé à GTK+1.2, marquant une rupture de compatibilité. Ainsi, les applications basées sur GTK+1.2 et souhaitant utiliser GTK+2 ont dû être adaptées.


La bibliothèque intègre un nouveau système de rendu du texte utilisant [[Pango]], un nouveau moteur de thème, une meilleure [[accessibilité]] en utilisant ATK (Accessibility Toolkit), prend en charge complètement [[Unicode]] en utilisant l'[[UTF-8]] et une [[Application programming interface|API]] plus flexible.
La bibliothèque intègre un nouveau système de rendu du texte utilisant [[Pango]], un nouveau moteur de thème, une meilleure [[accessibilité]] en utilisant ATK (Accessibility [[Toolkit]]), prend en charge complètement [[Unicode]] en utilisant l'[[UTF-8]] et une [[Application programming interface|API]] plus flexible.


Quelques évolutions notables :
Quelques évolutions notables :
Ligne 54 : Ligne 54 :
* GTK+ 2.18 introduit le procédé ''{{lang|en|client-side windows}}''<ref>{{en}} [http://blogs.gnome.org/gtk/2009/07/10/gtk-2173-unstable-release/ GTK+ 2.17.3 unstable release], 10 juillet 2009</ref> qui consiste à transférer le plus possible le dessin des fenêtres du [[X Window System|serveur X]] à GTK+ (plus précisément GDK). Un des bénéfices immédiats est de fluidifier l'affichage lors des défilements<ref>{{en}} [http://blogs.gnome.org/alexl/2009/02/10/how-to-remove-flicker-from-gtk/comment-page-1/ How to remove flicker from Gtk+], par Alexander Larsson, le 10 février 2009</ref>. À terme elle offre la possibilité de transformer/animer à volonté les widgets GTK+ (boutons, etc.)<ref>{{en}} [http://blogs.gnome.org/alexl/2009/06/12/the-return-of-client-side-windows/ The return of Client side windows], par Alexander Larsson, le 12 juin 2009</ref>.
* GTK+ 2.18 introduit le procédé ''{{lang|en|client-side windows}}''<ref>{{en}} [http://blogs.gnome.org/gtk/2009/07/10/gtk-2173-unstable-release/ GTK+ 2.17.3 unstable release], 10 juillet 2009</ref> qui consiste à transférer le plus possible le dessin des fenêtres du [[X Window System|serveur X]] à GTK+ (plus précisément GDK). Un des bénéfices immédiats est de fluidifier l'affichage lors des défilements<ref>{{en}} [http://blogs.gnome.org/alexl/2009/02/10/how-to-remove-flicker-from-gtk/comment-page-1/ How to remove flicker from Gtk+], par Alexander Larsson, le 10 février 2009</ref>. À terme elle offre la possibilité de transformer/animer à volonté les widgets GTK+ (boutons, etc.)<ref>{{en}} [http://blogs.gnome.org/alexl/2009/06/12/the-return-of-client-side-windows/ The return of Client side windows], par Alexander Larsson, le 12 juin 2009</ref>.
* Préparant la version 3.0, la version 2.22 court-circuite [[GDK]] pour confier directement à [[Cairo (informatique)|Cairo]] la plus grande partie du rendu graphique<ref>{{en}} [http://www.mail-archive.com/gtk-list@gnome.org/msg30655.html GTK+ 2.22.0 released], sur la liste de diffusion de GTK+, le 23 septembre 2010</ref>.
* Préparant la version 3.0, la version 2.22 court-circuite [[GDK]] pour confier directement à [[Cairo (informatique)|Cairo]] la plus grande partie du rendu graphique<ref>{{en}} [http://www.mail-archive.com/gtk-list@gnome.org/msg30655.html GTK+ 2.22.0 released], sur la liste de diffusion de GTK+, le 23 septembre 2010</ref>.
* GTK+ 2.24 est la dernière version de la série 2.x<ref>{{en}} [http://mail.gnome.org/archives/gtk-devel-list/2011-January/msg00042.html GTK+ 2.24.0], sur la liste de diffusion de GTK+, le 30 janvier 2011</ref>. Des versions correctives de cette version majeure sont régulièrement livrées. Début 2013, la dernière version en date est GTK 2.24.14. Celle-ci contient d'importants correctifs (notamment de [[fuites de mémoire]] affectant les utilisateurs de GTK sous Windows).
* GTK+ 2.24 est la dernière version de la série 2.x<ref>{{en}} [http://mail.gnome.org/archives/gtk-devel-list/2011-January/msg00042.html GTK+ 2.24.0], sur la liste de diffusion de GTK+, le 30 janvier 2011</ref>. Des versions correctives de cette version majeure sont régulièrement livrées, jusqu'à la sortie de GTK 4.0. Début 2013, la dernière version en date est GTK 2.24.14. Celle-ci contient d'importants correctifs (notamment de [[fuites de mémoire]] affectant les utilisateurs de GTK sous Windows). Le 16 Décembre 2020, La fondation GTK annonce la fin de maintenance de GTK+ 2.24 avec la sortie de la version GTK+ 2 finale, la 2.24.33<ref>{{Lien web |langue=en-US |titre=GTK 4.0 – GTK Development Blog |url=https://blog.gtk.org/2020/12/16/gtk-4-0/ |consulté le=2021-08-29}}</ref>.


== GTK 3 ==
== GTK+ 3 ==
Sortie le 10 février 2011, GTK+ 3.0 est une version majeure qui rompt la compatibilité avec la série 2.xx (pour faciliter la transition, les deux versions peuvent être installées en parallèle). GTK+ 3.0 constitue notamment l'aboutissement du projet Ridley qui est un travail de longue haleine consistant à consolider dans GTK+ les fonctions préposées dans des [[Bibliothèque logicielle|bibliothèques]] éparses dont la maintenance n'est pas correctement assurée<ref>{{en}} [http://mail.gnome.org/archives/desktop-devel-list/2005-August/msg00140.html Announcing: Project Ridley] sur la liste de diffusion des développeurs GTK+ et GNOME</ref>{{,}}<ref>{{en}} [http://live.gnome.org/ProjectRidley Project Ridley] sur live.gnome.org</ref>. Par ailleurs cette version offre une meilleure intégration de [[Cairo (informatique)|Cairo]], une moindre dépendance à [[X Window System|X11]] (GTK+ 3 peut s'interfacer également avec [[Win32]], [[Quartz (informatique)|Quartz]], [[Wayland]] et HTML5/Broadway<ref>{{en}} [http://blogs.gnome.org/alexl/2011/03/15/gtk-html-backend-update/ Gtk+ HTML backend update], par Alexander Larsson, le 15 mars 2011</ref>), l'utilisation de XInput2 ainsi qu'un système de thèmes basé sur le langage [[Feuilles de style en cascade|CSS]].
Sortie le 10 février 2011, GTK+ 3.0 est une version majeure qui rompt la compatibilité avec la série 2.xx (pour faciliter la transition, les deux versions peuvent être installées en parallèle). GTK+ 3.0 constitue notamment l'aboutissement du projet Ridley qui est un travail de longue haleine consistant à consolider dans GTK+ les fonctions proposées dans des [[Bibliothèque logicielle|bibliothèques]] éparses dont la maintenance n'est pas correctement assurée<ref>{{en}} [http://mail.gnome.org/archives/desktop-devel-list/2005-August/msg00140.html Announcing: Project Ridley] sur la liste de diffusion des développeurs GTK+ et GNOME</ref>{{,}}<ref>{{en}} [http://live.gnome.org/ProjectRidley Project Ridley] sur live.gnome.org</ref>. Par ailleurs cette version offre une meilleure intégration de [[Cairo (informatique)|Cairo]], une moindre dépendance à [[X Window System|X11]] (GTK+ 3 peut s'interfacer également avec [[Win32]], [[Quartz (informatique)|Quartz]], [[Wayland]] et HTML5/Broadway<ref>{{en}} [http://blogs.gnome.org/alexl/2011/03/15/gtk-html-backend-update/ Gtk+ HTML backend update], par Alexander Larsson, le 15 mars 2011</ref>), l'utilisation de XInput2 ainsi qu'un système de thèmes basé sur le langage [[Feuilles de style en cascade|CSS]].


Quelques évolutions notables :
Quelques évolutions notables :
Ligne 64 : Ligne 64 :
* GTK+ 3.8 prend en charge [[Wayland]] 1.0<ref>{{en}} [https://mail.gnome.org/archives/gtk-devel-list/2013-March/msg00108.html GTK+ 3.8.0 released] sur la liste de diffusion des développeurs GTK+ et GNOME]</ref>.
* GTK+ 3.8 prend en charge [[Wayland]] 1.0<ref>{{en}} [https://mail.gnome.org/archives/gtk-devel-list/2013-March/msg00108.html GTK+ 3.8.0 released] sur la liste de diffusion des développeurs GTK+ et GNOME]</ref>.


Outre les applications au cœur de GNOME 3, les logiciels suivants sont compatibles GTK 3 : [[gThumb]] 3.0.0, [[Shotwell]] 0.12, [[Liferea]] 1.10<ref>{{lien web|langue=en|url=https://github.com/lwindolf/liferea/issues/100|titre=Problems with dark Adwaita theme in Gtk 3.14|site=[[GitHub]]||date=27 septembre 2014|consulté le=14 septembre 2016}}</ref>, [[Pitivi]] 0.91<ref>{{lien web|langue=en|url=http://jeff.ecchi.ca/blog/2013/10/05/pitivi-0-91-charming-defects/|titre=Pitivi 0.91 “Charming Defects”|date=5 octobre 2013|consulté le=14 septembre 2016}}</ref>, [[Synaptic]] 0.83, [[Subtitle Editor]] 0.50.0, [[LibreOffice]] 5.0.0<ref>{{lien web|url=https://linuxfr.org/news/libreoffice-5-0-sous-le-capot#le-backend-gtk3--wayland|titre=LibreOffice 5.0 : sous le capot|chapitre=Le backend Gtk3 : Wayland|site=[[Linuxfr]]|date=25 août 2015|consulté le=14 septembre 2016}}</ref>, [[Eclipse (projet)|Eclipse]] 4.4, les versions GNU/Linux de [[Firefox]] 46<ref>{{lien web|langue=en|url=http://www.omgubuntu.co.uk/2016/04/firefox-46-now-available-download|titre=Firefox 46 Released, Finally Brings GTK3 Integration|site=OMG!Ubuntu!|date=26 avril 2016|consulté le=14 septembre 2016}}</ref> et [[Mozilla Thunderbird|Thunderbird]] 52, [[GParted]] 1.0.0…
Outre les applications au cœur de GNOME 3, les logiciels suivants sont compatibles GTK+ 3 : [[gThumb]] 3.0.0, [[Shotwell]] 0.12, [[Liferea]] 1.10<ref>{{lien web|langue=en|url=https://github.com/lwindolf/liferea/issues/100|titre=Problems with dark Adwaita theme in Gtk 3.14|site=[[GitHub]]|date=27 septembre 2014|consulté le=14 septembre 2016}}</ref>, [[Pitivi]] 0.91<ref>{{lien web|langue=en|url=http://jeff.ecchi.ca/blog/2013/10/05/pitivi-0-91-charming-defects/|titre=Pitivi 0.91 “Charming Defects”|date=5 octobre 2013|consulté le=14 septembre 2016}}</ref>, [[Subtitle Editor]] 0.50.0, [[LibreOffice]] 5.0.0<ref>{{lien web|url=https://linuxfr.org/news/libreoffice-5-0-sous-le-capot#le-backend-gtk3--wayland|titre=LibreOffice 5.0 : sous le capot|chapitre=Le backend Gtk3 : Wayland|site=[[Linuxfr]]|date=25 août 2015|consulté le=14 septembre 2016}}</ref>, [[Eclipse (projet)|Eclipse]] 4.4, les versions GNU/Linux de [[Firefox]] 46<ref>{{lien web|langue=en|url=http://www.omgubuntu.co.uk/2016/04/firefox-46-now-available-download|titre=Firefox 46 Released, Finally Brings GTK3 Integration|site=OMG!Ubuntu!|date=26 avril 2016|consulté le=14 septembre 2016}}</ref> et [[Mozilla Thunderbird|Thunderbird]] 52, [[GParted]] 1.0.0, [[Inkscape]] 1.0<ref>{{lien web|langue=en|url=https://inkscape.org/news/2020/05/04/introducing-inkscape-10/|titre=Introducing Inkscape 1.0|site=inkscape.org|date=4 mai 2020|consulté le=5 mai 2020}}</ref>…


[[Xfce]] 4.12 et [[MATE]] 1.12 sont en grande partie portés sur GTK+3, avec la version 4.14 du premier qui achèverait le port<ref>{{en}} [http://blog.alteroot.org/articles/2016-04-12/road-to-xfce-4.14.html Road to Xfce 4.14], Alteroot:~#</ref>.
[[Xfce]] a achevé son port vers GTK+ 3 avec sa version 4.14<ref>{{en}} [https://www.xfce.org/about/news/?post=1565568000 Xfce 4.14 released], xfce.org</ref>, et [[MATE]] avec sa version 1.1.18.


== GTK 4 ==
== GTK 4 ==
En {{date-|février 2018}}, lors du GTK+ hackfest, a été lancée la nouvelle roadmap du développement de la version 4<ref>{{Lien web|langue=|titre=Projects/GTK/Roadmap/GTK4 - GNOME Wiki!|url=https://wiki.gnome.org/Projects/GTK/Roadmap/GTK4|site=wiki.gnome.org|périodique=|date=|consulté le=2018-03-20}}</ref>.
En {{date-|février 2018}}, lors du GTK+ hackfest, a été lancée la nouvelle feuille de route du développement de la version 4<ref>{{Lien web|langue=|titre=Projects/GTK/Roadmap/GTK4 - GNOME Wiki!|url=https://wiki.gnome.org/Projects/GTK/Roadmap/GTK4|site=wiki.gnome.org|périodique=|date=|consulté le=2018-03-20}}</ref>. Elle sort le {{Date|16 décembre 2020}}<ref>{{Lien web |langue=en-US |titre=GTK 4.0 – GTK Development Blog |url=https://blog.gtk.org/2020/12/16/gtk-4-0/ |consulté le=2020-12-18}}</ref>.

GTK 4.2.0, sorti le {{date-|30 mars 2021}}, ajoute le ''NGL (New GL) renderer,'' qui améliore les performances, il est toujours possible d'utiliser l'ancien mode via <code>export GSK_RENDERER=gl</code><ref>{{lien web| langue=en| url=https://blog.gtk.org/2021/03/30/gtk-4-2-0/| titre=GTK 4.2.0| site=GTK Development Blog| auteur=Emmanuele Bassi| en ligne le=30 mars 2021}}</ref>. Il permet l’[[accélération matérielle]] sur les mobiles tournant sous [[GNU/Linux]] comme le [[PinePhone]], avec l'application ''Megapixels'', spécialisée dans la capture de photo<ref>{{lien web|langue=en| url=https://www.pine64.org/2021/05/15/may-update-connection-established/| titre=May Update: Connection Established| auteur=Lukasz Erecinski| en ligne le=15 mai 2021| site=Pine64.org}}</ref>.

GTK 4.4.0 est sorti le 23 août 2021<ref>{{Lien web |langue=en-US |titre=GTK 4.4 – GTK Development Blog |url=https://blog.gtk.org/2021/08/23/gtk-4-4/ |consulté le=2021-08-31}}</ref>. Le ''NGL renderer'' continue d'être amélioré. Sous Windows, GL est désormais utilisé pour jouer des media. Les thèmes ont été réorganisés et renommés. L'Inspecteur d'applications GTK est désormais activé par défaut.


== Notes et références ==
== Notes et références ==
Ligne 75 : Ligne 79 :


== Voir aussi ==
== Voir aussi ==
{{Autres projets|wikibooks=Programmation GTK+}}
{{Autres projets|wikibooks=Programmation GTK}}


=== Articles connexes ===
=== Articles connexes ===
Ligne 86 : Ligne 90 :
=== Liens externes ===
=== Liens externes ===
* {{Site officiel|en|http://www.gtk.org}}
* {{Site officiel|en|http://www.gtk.org}}
* {{en}} [https://discourse.gnome.org/c/platform/5 Forum Discourse consacré à GTK]
* {{fr}} [https://www.developpez.net/forums/f336/c-cpp/bibliotheques/gtkp/ Communauté francophone sur Developpez.com]
* {{fr}} [https://www.developpez.net/forums/f336/c-cpp/bibliotheques/gtkp/ Communauté francophone sur Developpez.com]



Dernière version du 23 mars 2022 à 06:45

GTK
Description de l'image GTK logo.svg.
Description de l'image Awf-2020-2.png.
Informations
Développé par GNOME Foundation et Projet GNUVoir et modifier les données sur Wikidata
Première version Voir et modifier les données sur Wikidata
Dernière version 4.16.12 ()[1]Voir et modifier les données sur Wikidata
Dépôt gitlab.gnome.org/GNOME/gtkVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation GNU/Linux, macOS, type Unix, Microsoft Windows et LinuxVoir et modifier les données sur Wikidata
Environnement MultiplateformeVoir et modifier les données sur Wikidata
Langues MultilingueVoir et modifier les données sur Wikidata
Type Cadre applicatif (en)
Widget toolkitVoir et modifier les données sur Wikidata
Licence Licence publique générale limitée GNU version 2.1Voir et modifier les données sur Wikidata
Documentation docs.gtk.orgVoir et modifier les données sur Wikidata
Site web gtk.orgVoir et modifier les données sur Wikidata

Wayland, libwayland-client et GTK

GTK (The GIMP Toolkit, anciennement GTK+[2]) est un ensemble de bibliothèques logicielles, c'est-à-dire un ensemble de fonctions permettant de réaliser des interfaces graphiques. Cette bibliothèque a été développée originellement pour les besoins du logiciel de traitement d'images GIMP. GTK+ est maintenant utilisé dans de nombreux projets, dont les environnements de bureau GNOME, Xfce, Lxde et ROX.

GTK est un projet libre (licence GNU LGPL 2.1) et multiplate-forme.

GTK est écrit en langage C et utilise pourtant le paradigme de la programmation orientée objet[3] grâce à la bibliothèque GObject. Il est également possible d'utiliser GTK dans de nombreux autres langages de programmation[4]: C++ (avec gtkmm), C# et Visual Basic (Gtk#), F# (Gtk#), Java (java-gnome (en)), JavaScript, Perl, Python, Vala, Ada, D, Fortran, Haskell, OCaml, PHP, Ruby (Ruby-GNOME2 (tr)), Rust, etc.

GTK est l'interface de différents environnements de bureau comme GNOME, Xfce ou encore ROX ce qui permet une intégration parfaite. Il s'intègre également dans d'autres environnements de bureau GNU/Linux grâce à un moteur de thème qui mime l'interface initiale. Il en va de même sur Windows et Mac OS X.

Parmi ces moteurs de thèmes, on retrouve Luna (Windows XP), Motif, Qt ou NeXTSTEP. Mais aussi des moteurs originaux comme Industrial par Novell ou Bluecurve par Red Hat.

GTK+2 a succédé à GTK+1.2, marquant une rupture de compatibilité. Ainsi, les applications basées sur GTK+1.2 et souhaitant utiliser GTK+2 ont dû être adaptées.

La bibliothèque intègre un nouveau système de rendu du texte utilisant Pango, un nouveau moteur de thème, une meilleure accessibilité en utilisant ATK (Accessibility Toolkit), prend en charge complètement Unicode en utilisant l'UTF-8 et une API plus flexible.

Quelques évolutions notables :

  • GTK+ 2.4 introduit un nouveau sélecteur de fichiers qui sera perfectionné progressivement par la suite.
  • GTK+ 2.8 permet l'exploitation de Cairo.
  • GTK+ 2.10 offre un système complet pour l'impression et gère la liste des fichiers récemment ouverts.
  • GTK+ 2.12 inclut GtkBuilder comme remplaçant de libglade
  • GTK+ 2.18 introduit le procédé client-side windows[5] qui consiste à transférer le plus possible le dessin des fenêtres du serveur X à GTK+ (plus précisément GDK). Un des bénéfices immédiats est de fluidifier l'affichage lors des défilements[6]. À terme elle offre la possibilité de transformer/animer à volonté les widgets GTK+ (boutons, etc.)[7].
  • Préparant la version 3.0, la version 2.22 court-circuite GDK pour confier directement à Cairo la plus grande partie du rendu graphique[8].
  • GTK+ 2.24 est la dernière version de la série 2.x[9]. Des versions correctives de cette version majeure sont régulièrement livrées, jusqu'à la sortie de GTK 4.0. Début 2013, la dernière version en date est GTK 2.24.14. Celle-ci contient d'importants correctifs (notamment de fuites de mémoire affectant les utilisateurs de GTK sous Windows). Le 16 Décembre 2020, La fondation GTK annonce la fin de maintenance de GTK+ 2.24 avec la sortie de la version GTK+ 2 finale, la 2.24.33[10].

Sortie le 10 février 2011, GTK+ 3.0 est une version majeure qui rompt la compatibilité avec la série 2.xx (pour faciliter la transition, les deux versions peuvent être installées en parallèle). GTK+ 3.0 constitue notamment l'aboutissement du projet Ridley qui est un travail de longue haleine consistant à consolider dans GTK+ les fonctions proposées dans des bibliothèques éparses dont la maintenance n'est pas correctement assurée[11],[12]. Par ailleurs cette version offre une meilleure intégration de Cairo, une moindre dépendance à X11 (GTK+ 3 peut s'interfacer également avec Win32, Quartz, Wayland et HTML5/Broadway[13]), l'utilisation de XInput2 ainsi qu'un système de thèmes basé sur le langage CSS.

Quelques évolutions notables :

  • GTK+ 3.2 intègre dorénavant la bibliothèque gérant l'accessibilité Gail (GNOME Accessibility Implementation Library)[14].
  • GTK+ 3.4 intègre une gestion basique des événements tactiles (et supporte le défilement doux)[15].
  • GTK+ 3.8 prend en charge Wayland 1.0[16].

Outre les applications au cœur de GNOME 3, les logiciels suivants sont compatibles GTK+ 3 : gThumb 3.0.0, Shotwell 0.12, Liferea 1.10[17], Pitivi 0.91[18], Subtitle Editor 0.50.0, LibreOffice 5.0.0[19], Eclipse 4.4, les versions GNU/Linux de Firefox 46[20] et Thunderbird 52, GParted 1.0.0, Inkscape 1.0[21]

Xfce a achevé son port vers GTK+ 3 avec sa version 4.14[22], et MATE avec sa version 1.1.18.

En , lors du GTK+ hackfest, a été lancée la nouvelle feuille de route du développement de la version 4[23]. Elle sort le [24].

GTK 4.2.0, sorti le , ajoute le NGL (New GL) renderer, qui améliore les performances, il est toujours possible d'utiliser l'ancien mode via export GSK_RENDERER=gl[25]. Il permet l’accélération matérielle sur les mobiles tournant sous GNU/Linux comme le PinePhone, avec l'application Megapixels, spécialisée dans la capture de photo[26].

GTK 4.4.0 est sorti le 23 août 2021[27]. Le NGL renderer continue d'être amélioré. Sous Windows, GL est désormais utilisé pour jouer des media. Les thèmes ont été réorganisés et renommés. L'Inspecteur d'applications GTK est désormais activé par défaut.

Notes et références

[modifier | modifier le code]
  1. « 4.16.12 », (consulté le )
  2. (en) Jonathan Corbet, « GTK+ renamed to GTK », sur LWN.net, (consulté le ).
  3. GTK+ has a C-based object-oriented architecture that allows for maximum flexibility[1]
  4. Bindings GTK+
  5. (en) GTK+ 2.17.3 unstable release, 10 juillet 2009
  6. (en) How to remove flicker from Gtk+, par Alexander Larsson, le 10 février 2009
  7. (en) The return of Client side windows, par Alexander Larsson, le 12 juin 2009
  8. (en) GTK+ 2.22.0 released, sur la liste de diffusion de GTK+, le 23 septembre 2010
  9. (en) GTK+ 2.24.0, sur la liste de diffusion de GTK+, le 30 janvier 2011
  10. (en-US) « GTK 4.0 – GTK Development Blog » (consulté le )
  11. (en) Announcing: Project Ridley sur la liste de diffusion des développeurs GTK+ et GNOME
  12. (en) Project Ridley sur live.gnome.org
  13. (en) Gtk+ HTML backend update, par Alexander Larsson, le 15 mars 2011
  14. (en) GTK+ 3.1.10 sur la liste de diffusion des développeurs GTK+ et GNOME]
  15. (en) GTK+ 3.4.0 released sur la liste de diffusion des développeurs GTK+ et GNOME]
  16. (en) GTK+ 3.8.0 released sur la liste de diffusion des développeurs GTK+ et GNOME]
  17. (en) « Problems with dark Adwaita theme in Gtk 3.14 », sur GitHub, (consulté le )
  18. (en) « Pitivi 0.91 “Charming Defects” », (consulté le )
  19. « LibreOffice 5.0 : sous le capot », sur Linuxfr, (consulté le )
  20. (en) « Firefox 46 Released, Finally Brings GTK3 Integration », sur OMG!Ubuntu!, (consulté le )
  21. (en) « Introducing Inkscape 1.0 », sur inkscape.org, (consulté le )
  22. (en) Xfce 4.14 released, xfce.org
  23. « Projects/GTK/Roadmap/GTK4 - GNOME Wiki! », sur wiki.gnome.org (consulté le )
  24. (en-US) « GTK 4.0 – GTK Development Blog » (consulté le )
  25. (en) Emmanuele Bassi, « GTK 4.2.0 », sur GTK Development Blog,
  26. (en) Lukasz Erecinski, « May Update: Connection Established », sur Pine64.org,
  27. (en-US) « GTK 4.4 – GTK Development Blog » (consulté le )

Sur les autres projets Wikimedia :

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]