Nouveautés pour les développeurs

Les changement suivants sont importants pour les développeurs utilisant GNOME 2.24 comme plate-forme de développement. Si vous n'êtes pas intéressé par les changements affectant les développeurs, vous pouvez passer directement à la section Section V ― Nouveautés pour la mobilité.

IV.I. Préparation de GLib/GTK+ 3.0

Afin de commencer à préparer les développeurs à l'arrivée de GLib et GTK+ 3.0, les prochaines versions des ces bibliothèques inclueront des drapeaux forçant une compatibilité plus stricte.

GLib, GTK+ et ATK 3.0 requièreront la seule inclusion des en-têtes globaux (par ex. glib.h, gobject.h, gio.h) dans les applications. Ce changement est important pour permettre le retrait, le renommage, ou le réarrangement d'en-têtes individuels sans pour autant affecter la compatibilité du code source des applications.

Pour permettre aux développeurs de tester la compatibilité de leurs applications dès à présent, de nouvelles options de compilation ont été introduites : G_DISABLE_SINGLE_INCLUDES pour la GLib, GTK_DISABLE_SINGLE_INCLUDES pour GTK+ et ATK_DISABLE_SINGLE_INCLUDES pour ATK.

Passez-les simplement comme drapeaux de compilation à la construction de votre application (par ex. -DG_DISABLE_SINGLE_INCLUDES) pour vous assurer que votre application est correcte.

Aller plus loin dans les tests de compatibilité

GLib, GTK+ et les bibliothèques associées fournissent aussi d'autres options de compilation que vous pouvez utiliser pour tester la compatibilité avec GTK+ 3.0.

Vous pouvez désactiver la gestion des symboles et classes dépréciés qui seront retirés de la version 3.0 en activant les options de compilation suivantes : ATK_DISABLE_DEPRECATED, PANGO_DISABLE_DEPRECATED, G_DISABLE_DEPRECATED, GDK_PIXBUF_DISABLE_DEPRECATED, GDK_DISABLE_DEPRECATED et GTK_DISABLE_DEPRECATED pour ATK, Pango, GLib, GdkPixbuf, GDK et GTK+ respectivement.

Vous pouvez tester que votre programme n'utilise que des fonctions qui gèrent correctement les configurations multi-écrans (multihead) en définissant GDK_MULTIHEAD_SAFE et GTK_MULTIHEAD_SAFE.

IV.II. GLib 2.18

GNOME 2.24 est la première version de GNOME à dépendre de GLib 2.18.

GLib 2.18 améliore la gestion du contexte de traduction des chaînes de caractères avec les macros C_() et NC_(). Il ajoute aussi des interfaces de programmation dans GIO.

Une liste complète des nouveaux symboles est disponible pour la GLib et GIO.

IV.III. GTK+ 2.14

GNOME 2.24 est la première version de GNOME à dépendre de GTK+ 2.14.

Glade et GTK+ 2.14

Toutes les versions de Glade (y compris la 3.4.1) créent des GtkSpinButton, GtkHScape et GtkVScale avec par défaut une valeur pour page_size de 10. Les développeurs devraient vérifier tous les fichiers Glade qu'ils ont créés et vérifier que la valeur des page_size a du sens.

Une nouvelle classe, GtkMountOperation est fournie pour être passée à g_volume_mount. GtkMountOperation est une GMountOperation capable de présenter une boîte de dialogue d'authentification à l'utilisateur si nécessaire.

Une méthode portable pour ouvrir des fichiers et autres URI en utilisant l'application par défaut est à présent disponible en utilisant la fonction gtk_show_uri(), plutôt que d'avoir à dépendre de libgnome. GDK fournit à présent une implémentation de GAppLaunchContext gérant les applications graphiques (y compris les notifications de démarrage et la prévention du vol de focus), GdkAppLaunchContext.

Une autre nouveauté de GTK+ 2.14 est une API basée sur GFile pour GtkFileChooser et la capacité pour GtkBuilder de construire des fragments depuis un arbre XML.

Une liste complète des nouveaux symboles est disponible pour GTK+ et GDK.

IV.IV. Bibliothèques de messagerie instantanée

Avec son nouveau client de messagerie instantanée, (voir Section II.I ― Restez en contact), GNOME 2.24 inclut les bibliothèques libempathy, libempathy-gtk et telepathy-glib qui peuvent être utilisées pour intégrer les fonctionnalités de messagerie instantanée à n'importe quelle application GNOME.

IV.V. Deskbar

L'interface Match inclut à présent deux nouvelles méthodes : set_snippet et get_snippet. Si un snippet est défini, il sera affiché sur une nouvelle ligne sous la valeur de get_verb correspondante.

L'interface Action s'est enrichie de la méthode get_tooltip. Surcharger cette méthode permet la présentation d'une infobulle lorsque l'utilisateur survole un résultat ou une action.