Έκδοση της βιβλιοθήκης Libadwaita 1.5 για τη δημιουργία διεπαφών τύπου GNOME

Το έργο GNOME δημοσίευσε την κυκλοφορία του Libadwaita 1.5, το οποίο περιλαμβάνει ένα σύνολο στοιχείων για το στυλ της διεπαφής χρήστη που ακολουθεί το GNOME HIG (Οδηγίες ανθρώπινης διεπαφής). Η βιβλιοθήκη περιλαμβάνει έτοιμα widget και αντικείμενα για τη δημιουργία εφαρμογών που συμμορφώνονται με το γενικό στυλ GNOME, η διεπαφή του οποίου μπορεί να προσαρμοστεί προσαρμοστικά σε οθόνες οποιουδήποτε μεγέθους. Ο κώδικας της βιβλιοθήκης είναι γραμμένος σε C και διανέμεται με την άδεια LGPL 2.1+.

Η βιβλιοθήκη libadwaita χρησιμοποιείται σε συνδυασμό με το GTK4 και περιλαμβάνει στοιχεία του θέματος Adwaita που χρησιμοποιούνται στο GNOME, τα οποία έχουν μετακινηθεί από το GTK σε ξεχωριστή βιβλιοθήκη. Η μετακίνηση στοιχείων στυλ GNOME σε μια ξεχωριστή βιβλιοθήκη επιτρέπει την ανάπτυξη αλλαγών για το GNOME ξεχωριστά από το GTK, επιτρέποντας στους προγραμματιστές του GTK να επικεντρωθούν στο βασικό υλικό και στους προγραμματιστές του GNOME να προωθήσουν πιο γρήγορα και πιο ευέλικτα τις αλλαγές στυλ που θέλουν χωρίς να επηρεάζουν το ίδιο το GTK.

Η βιβλιοθήκη περιλαμβάνει τυπικά γραφικά στοιχεία που καλύπτουν διάφορα στοιχεία διεπαφής, όπως λίστες, πίνακες, μπλοκ επεξεργασίας, κουμπιά, καρτέλες, φόρμες αναζήτησης, πλαίσια διαλόγου κ.λπ. Τα προτεινόμενα widget σάς επιτρέπουν να δημιουργείτε καθολικές διεπαφές που λειτουργούν απρόσκοπτα τόσο σε μεγάλες οθόνες υπολογιστών και φορητών υπολογιστών όσο και σε μικρές οθόνες αφής smartphone. Η διεπαφή της εφαρμογής αλλάζει δυναμικά ανάλογα με το μέγεθος της οθόνης και τις διαθέσιμες συσκευές εισόδου. Η βιβλιοθήκη περιλαμβάνει επίσης ένα σύνολο στυλ Adwaita που ευθυγραμμίζουν την εμφάνιση με τις οδηγίες του GNOME χωρίς να απαιτείται χειροκίνητη προσαρμογή.

Έκδοση της βιβλιοθήκης Libadwaita 1.5 για τη δημιουργία διεπαφών τύπου GNOME

Основным изменением в libadwaita 1.5 стала переработка адаптивных виджетов для создания диалоговых окон, подстраивающихся под размер видимой области. В отличие от традиционных диалогов, которые размещаются в отдельных окнах, новые диалоги формируются на стороне клиента, отрисовываются внутри существующих окон и не могут выходить за пределы родительского окна. Подобный подход упрощает создание универсальных диалогов, сочетаемых с интерфейсами для мобильных и настольных систем, а также предоставляет дополнительные возможности для управления диалогами (например, не нужно отслеживать выход за границу окна, можно выбирать поведение в отношении кнопок закрытия, обеспечивается автоматическое развёртывание на весь экран в мобильных версиях приложений, учитывается стиль текущего окна, а не системы, при затемнении диалога).

Έκδοση της βιβλιοθήκης Libadwaita 1.5 για τη δημιουργία διεπαφών τύπου GNOMEΈκδοση της βιβλιοθήκης Libadwaita 1.5 για τη δημιουργία διεπαφών τύπου GNOME

В дальнейшем планируется реализовать ещё один вариант подобных диалогов, привязанных не к окнам, а ко вкладкам внутри окна, что может быть востребовано в таких приложениях, как браузеры для того, чтобы связанные со вкладкой диалоги не перекрывали основное окно при переключении между вкладками.

Для мобильных устройств реализована поддержка размещения диалогов в форме листов, закреплённых в нижней части экрана (bottom sheets), а не в форме листов, выровненных по центру. Прикреплённые к нижней части диалоги избавляют пользователей от путаницы с закрытием окон — в подобных диалогах часть родительского окна остаётся видимой и кнопки закрытия родительского окна и самого диалога явно разделены, поэтому их теперь трудно спутать.

Έκδοση της βιβλιοθήκης Libadwaita 1.5 για τη δημιουργία διεπαφών τύπου GNOME

Управление новыми диалогами производится при помощи класса AdwDialog, работа с которым в большинстве ситуаций походит на использование класса GtkWindow, а различия сводятся к операциям отображения и закрытию. Например, свойство «:transient-for» заменено на параметр в функции adw_dialog_present(), добавлен новый сигнал «::close-attempt», изменена обработка параметра «:can-close». Вместо классов AdwPreferencesWindow, AdwAboutWindow и AdwMessageDialog с новыми диалогами предложено использовать классы AdwPreferencesDialog, AdwAboutDialog и AdwAlertDialog.

Диалоги, которые не имеют родительского окна, по-прежнему будут обрабатываться в форме отдельных окон. Как окна также будут функционировать диалоги, родительские окна которых не могут быть использованы для размещения диалогов, например, если они не допускают изменения размера или для них отсутствуют классы AdwWindow и AdwApplicationWindow.

Не связанные с переработкой диалогов изменения в Libadwaita 1.5:

  • В класс AdwEntryRow добавлено свойство «:text-length» для ограничения размера текста в поле ввода.
  • В класс AdwMessageDialog добавлен метод remove_response().
  • В класс AdwBreakpointBin, позволяющий менять интерфейс пользователя произвольным образом в зависимости от размера окна, добавлена возможность программного удаления точек останова.
  • В класс AdwSwipeTracker добавлен флаг «:allow-window-handle», допускающий пролистывание поверх верхней панели (используется в листах, прикреплённых к нижнему краю).
  • Повышена яркость цветов, используемых при затенении окон при тёмном стиле оформления.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο