GNOME طرز کے انٹرفیس بنانے کے لیے Libadwaita 1.5 لائبریری کا اجراء

GNOME پروجیکٹ نے Libadwaita 1.5 لائبریری کا اجراء شائع کیا ہے، جس میں GNOME HIG (ہیومن انٹرفیس گائیڈ لائنز) کی سفارشات کے مطابق صارف انٹرفیس کو اسٹائل کرنے کے لیے اجزاء کا ایک سیٹ شامل ہے۔ لائبریری میں ایپلی کیشنز کی تعمیر کے لیے ریڈی میڈ ویجٹ اور اشیاء شامل ہیں جو عام GNOME طرز کے مطابق ہیں، جس کا انٹرفیس کسی بھی سائز کی اسکرینوں کے ساتھ جوابی طور پر ڈھل سکتا ہے۔ لائبریری کوڈ C زبان میں لکھا گیا ہے اور LGPL 2.1+ لائسنس کے تحت تقسیم کیا گیا ہے۔

libadwaita لائبریری GTK4 کے ساتھ مل کر استعمال کی جاتی ہے اور GNOME میں استعمال ہونے والی Adwaita جلد کے اجزاء شامل ہیں، جنہیں GTK سے باہر ایک علیحدہ لائبریری میں منتقل کر دیا گیا ہے۔ GNOME کے بصریوں کو ایک علیحدہ لائبریری میں منتقل کرنے سے GTK سے الگ الگ GNOME کے لیے ضروری تبدیلیاں تیار کی جا سکتی ہیں، جس سے GTK کے ڈویلپرز کو بنیادی باتوں پر توجہ مرکوز کرنے کی اجازت ملتی ہے، اور GNOME ڈویلپرز کو GTK کو متاثر کیے بغیر اپنے لیے زیادہ تیزی اور لچکدار طریقے سے اسٹائلنگ تبدیلیوں کو آگے بڑھانے کی اجازت ملتی ہے۔

لائبریری میں معیاری ویجٹ شامل ہیں جن میں انٹرفیس کے مختلف عناصر شامل ہیں، جیسے فہرستیں، پینل، ایڈیٹنگ بلاکس، بٹن، ٹیبز، سرچ فارمز، ڈائیلاگ باکسز وغیرہ۔ مجوزہ ویجیٹس آپ کو ایسے عالمگیر انٹرفیس بنانے کی اجازت دیتے ہیں جو پی سی اور لیپ ٹاپ کی بڑی اسکرینوں اور اسمارٹ فونز کی چھوٹی ٹچ اسکرینوں پر بغیر کسی رکاوٹ کے کام کرتے ہیں۔ ایپلیکیشن انٹرفیس متحرک طور پر اسکرین کے سائز اور دستیاب ان پٹ ڈیوائسز کے لحاظ سے تبدیل ہوتا ہے۔ لائبریری میں Adwaita سٹائل کا ایک سیٹ بھی شامل ہے جو دستی حسب ضرورت کے بغیر GNOME کے رہنما خطوط کو ظاہر کرتا ہے۔

GNOME طرز کے انٹرفیس بنانے کے لیے Libadwaita 1.5 لائبریری کا اجراء

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

GNOME طرز کے انٹرفیس بنانے کے لیے Libadwaita 1.5 لائبریری کا اجراءGNOME طرز کے انٹرفیس بنانے کے لیے Libadwaita 1.5 لائبریری کا اجراء

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

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

GNOME طرز کے انٹرفیس بنانے کے لیے Libadwaita 1.5 لائبریری کا اجراء

Управление новыми диалогами производится при помощи класса 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

نیا تبصرہ شامل کریں