Sortie de la bibliothèque Libadwaita 1.5 pour créer des interfaces de style GNOME

Le projet GNOME a publié la version de Libadwaita 1.5, qui comprend un ensemble de composants pour le style de l'interface utilisateur qui suit les GNOME HIG (Human Interface Guidelines). La bibliothèque comprend des widgets et des objets prêts à l'emploi pour créer des applications conformes au style général de GNOME, dont l'interface peut être adaptée de manière adaptative aux écrans de n'importe quelle taille. Le code de la bibliothèque est écrit en C et est distribué sous licence LGPL 2.1+.

La bibliothèque libadwaita est utilisée conjointement avec GTK4 et inclut des composants du thème Adwaita utilisé dans GNOME, qui ont été déplacés de GTK vers une bibliothèque distincte. Le déplacement des éléments de style GNOME dans une bibliothèque distincte permet de développer des modifications spécifiques à GNOME séparément de GTK, permettant aux développeurs GTK de se concentrer sur les éléments de base et aux développeurs GNOME d'avancer plus rapidement et de manière plus flexible les modifications de style qu'ils souhaitent sans affecter GTK lui-même.

La bibliothèque comprend des widgets standards couvrant divers éléments de l'interface, tels que des listes, des panneaux, des blocs d'édition, des boutons, des onglets, des formulaires de recherche, des boîtes de dialogue, etc. Les widgets proposés permettent de créer des interfaces universelles qui fonctionnent de manière transparente aussi bien sur les grands écrans de PC et d'ordinateurs portables que sur les petits écrans tactiles des smartphones. L'interface de l'application change dynamiquement en fonction de la taille de l'écran et des périphériques d'entrée disponibles. La bibliothèque comprend également un ensemble de styles Adwaita qui alignent l'apparence sur les directives de GNOME sans nécessiter d'adaptation manuelle.

Sortie de la bibliothèque Libadwaita 1.5 pour créer des interfaces de style GNOME

Le principal changement de libadwaita 1.5 était la refonte des widgets adaptatifs pour créer des boîtes de dialogue qui s'ajustent à la taille de la zone visible. Contrairement aux boîtes de dialogue traditionnelles, qui sont hébergées dans des fenêtres séparées, les nouvelles boîtes de dialogue sont rendues côté client, à l'intérieur des fenêtres existantes et ne peuvent pas s'étendre au-delà de leur fenêtre parent. Cette approche simplifie la création de boîtes de dialogue universelles pouvant être combinées avec des interfaces pour systèmes mobiles et de bureau, et fournit également des options supplémentaires pour gérer les boîtes de dialogue (par exemple, il n'est pas nécessaire de surveiller la sortie de la bordure de la fenêtre, vous pouvez choisir le comportement de boutons de fermeture, l'expansion automatique en plein écran est prévue dans les versions mobiles des applications, le style de la fenêtre actuelle, et non le système, est pris en compte lors de l'assombrissement de la boîte de dialogue).

Sortie de la bibliothèque Libadwaita 1.5 pour créer des interfaces de style GNOMESortie de la bibliothèque Libadwaita 1.5 pour créer des interfaces de style GNOME

À l'avenir, il est prévu d'implémenter une autre version de ces boîtes de dialogue, liées non pas aux fenêtres, mais aux onglets à l'intérieur de la fenêtre, qui peuvent être nécessaires dans des applications telles que les navigateurs afin que les boîtes de dialogue associées à un onglet ne chevauchent pas la fenêtre principale lorsque basculer entre les onglets.

Pour les appareils mobiles, la prise en charge a été implémentée pour placer les boîtes de dialogue sous forme de feuilles ancrées en bas de l'écran (feuilles inférieures), plutôt que sous forme de feuilles alignées au centre. Les boîtes de dialogue attachées en bas évitent aux utilisateurs toute confusion lors de la fermeture des fenêtres - dans de telles boîtes de dialogue, une partie de la fenêtre parent reste visible et les boutons de fermeture de la fenêtre parent et la boîte de dialogue elle-même sont clairement séparés, il est donc désormais difficile de les confondre.

Sortie de la bibliothèque Libadwaita 1.5 pour créer des interfaces de style GNOME

Les nouvelles boîtes de dialogue sont gérées à l'aide de la classe AdwDialog, qui dans la plupart des situations est similaire à l'utilisation de la classe GtkWindow, les différences étant les opérations d'affichage et de fermeture. Par exemple, la propriété « :transient-for » a été remplacée par un paramètre dans la fonction adw_dialog_present(), un nouveau signal « ::close-attempt » a été ajouté et le traitement du paramètre « :can-close » a été modifié. . Au lieu des classes AdwPreferencesWindow, AdwAboutWindow et AdwMessageDialog, il est proposé d'utiliser les classes AdwPreferencesDialog, AdwAboutDialog et AdwAlertDialog avec de nouvelles boîtes de dialogue.

Les boîtes de dialogue qui n'ont pas de fenêtre parent seront toujours traitées comme des fenêtres distinctes. Les boîtes de dialogue dont les fenêtres parentes ne peuvent pas être utilisées pour héberger des boîtes de dialogue fonctionneront également comme des fenêtres, par exemple si elles ne permettent pas le redimensionnement ou si elles ne disposent pas des classes AdwWindow et AdwApplicationWindow pour elles.

Changements non liés à la refonte du dialogue dans Libadwaita 1.5 :

  • Ajout de la propriété ":text-length" à la classe AdwEntryRow pour limiter la taille du texte dans le champ de saisie.
  • Ajout de la méthode Remove_response() à la classe AdwMessageDialog.
  • La possibilité de supprimer par programme des points d'arrêt a été ajoutée à la classe AdwBreakpointBin, ce qui vous permet de modifier l'interface utilisateur de n'importe quelle manière en fonction de la taille de la fenêtre.
  • Ajout de l'indicateur ":allow-window-handle" à la classe AdwSwipeTracker pour permettre le balayage en haut de la barre supérieure (utilisée dans les feuilles attachées au bord inférieur).
  • Augmentation de la luminosité des couleurs utilisées lors de l'ombrage des fenêtres dans un style de conception sombre.

Source: opennet.ru

Ajouter un commentaire