پروژه گنوم نسخه Libadwaita 1.2 را منتشر کرده است که شامل مجموعهای از مؤلفهها برای استایل رابط کاربری است که از GNOME HIG (دستورالعملهای رابط انسانی) پیروی میکند. این کتابخانه شامل ویجتها و اشیاء آماده برای ساخت برنامههای کاربردی است که با سبک کلی GNOME مطابقت دارند، که رابط آن را میتوان به صورت تطبیقی با صفحههای نمایش با هر اندازه تنظیم کرد. کد کتابخانه به زبان C نوشته شده است و تحت مجوز LGPL 2.1+ توزیع شده است.
کتابخانه libadwaita همراه با GTK4 استفاده میشود و شامل اجزای تم Adwaita است که در GNOME استفاده میشود، که از GTK به یک کتابخانه جداگانه منتقل شدهاند. انتقال عناصر استایل گنوم به یک کتابخانه مجزا باعث می شود تا تغییرات خاص گنوم به طور جداگانه از GTK ایجاد شوند، و به توسعه دهندگان GTK اجازه می دهد تا روی چیزهای اصلی تمرکز کنند و توسعه دهندگان گنوم سریعتر و انعطاف پذیرتر تغییرات استایل مورد نظر خود را بدون تأثیرگذاری بر خود GTK به پیش ببرند.
این کتابخانه شامل ویجتهای استانداردی است که عناصر رابط مختلف را پوشش میدهد، مانند لیستها، پانلها، بلوکهای ویرایش، دکمهها، برگهها، فرمهای جستجو، کادرهای گفتگو و غیره. ویجتهای پیشنهادی به شما امکان میدهند رابطهای جهانی ایجاد کنید که هم بر روی صفحهنمایشهای بزرگ رایانههای شخصی و لپتاپها و هم در صفحههای لمسی کوچک تلفنهای هوشمند بهطور یکپارچه عمل کنند. رابط برنامه به صورت پویا بسته به اندازه صفحه نمایش و دستگاه های ورودی موجود تغییر می کند. این کتابخانه همچنین شامل مجموعهای از سبکهای Adwaita است که بدون نیاز به تطبیق دستی، ظاهر را با دستورالعملهای GNOME مطابقت میدهد.
تغییرات عمده در libadwaita 1.2:
- ویجت Adw.EntryRow اضافه شد که برای استفاده به عنوان عنصر لیست در نظر گرفته شده است. ویجت یک فیلد ورودی و یک هدر با قابلیت پیوست کردن ویجتهای اضافی قبل و بعد از فیلد ورودی (به عنوان مثال، دکمههای تأیید ورودی یا نشانگر قابل ویرایش دادهها) ارائه میکند. علاوه بر این، گزینه Adw.PasswordEntryRow در دسترس است که برای وارد کردن رمزهای عبور طراحی شده است.
- ویجت Adw.MessageDialog را برای نمایش گفتگو با پیام یا سوال اضافه کرد. ویجت جایگزین پیشرفته ای برای Gtk.MessageDialog است که می تواند چیدمان عناصر را به اندازه پنجره تنظیم کند. به عنوان مثال، در پنجره های عریض، دکمه ها را می توان در یک خط نمایش داد، در حالی که در پنجره های باریک می توان آنها را به چندین ستون تقسیم کرد. تفاوت دیگر این است که ویجت فرزند کلاس GtkDialog نیست و یک API کاملاً جدید ارائه میکند که به انواع دکمههای از پیش تعریفشده GtkResponseType مرتبط نیست (در Adw.MessageDialog همه اقدامات توسط برنامه انجام میشود)، جاسازی سایر اقدامات را آسانتر میکند. ویجت ها با استفاده از ویژگی extra-child، و سبک های جداگانه ای را برای عنوان و متن متن ارائه می دهد.
- ویجت Adw.AboutWindow را برای نمایش پنجره ای با اطلاعات مربوط به برنامه اضافه کرد. ویجت جایگزین Gtk.AboutDialog میشود و دارای طرحبندی تطبیقی عناصر و بخشهای پشتیبانی گسترده است، مانند فهرستی از تغییرات، یک پنجره تشکر، اطلاعاتی درباره مجوزهای اجزای شخص ثالث، پیوندها به منابع اطلاعاتی و دادهها برای سادهسازی اشکالزدایی.
- قابلیتهای ویجتهای Adw.TabView و Adw.TabBar گسترش یافتهاند که در آن مکانیسم پردازش کلیدهای میانبر برای حل مشکل عملکرد ترکیبهایی که با کنترلکنندههای GTK4 همپوشانی دارند (مثلاً Ctrl+Tab) دوباره طراحی شده است. نسخه جدید همچنین ویژگی هایی را برای تنظیم نکات ابزار برای نشانگرها و دکمه های تب ارائه می دهد.
- کلاس Adw.PropertyAnimationTarget را برای آسانتر کردن متحرک کردن ویژگیهای شی اضافه کرد.
- سبک نوار برگه (Adw.TabBar) به طور قابل توجهی تغییر کرده است - برگه فعال با وضوح بیشتری برجسته شده است و کنتراست عناصر در نسخه تاریک افزایش یافته است.
- ارتفاع تقسیمکنندههای عمودی را کاهش داد، که به هدر و نوار جستجو این امکان را داد تا از شر حاشیههای روشن منحرف کننده خلاص شوند و به نفع حاشیههای تیره با استفاده از @headerbar_shade_color تنظیم شدهاند، و سبک پسزمینهای را اضافه کنند که با پانلهای هدر مطابقت داشته باشد.
- کلاس سبک ".large-title" منسوخ شده است و باید به جای آن از ".title-1" استفاده شود.
- بالشتک در ویجت Adw.ActionRow کاهش یافته است تا ظاهر آن به پانل ها و ویجت Adw.EntryRow نزدیک شود.
- ویجتهای Gtk.Actionbar و Adw.ViewSwitcherBar از همان سبکهای هدر، جستجو و نوار برگه استفاده میکنند.
منبع: opennet.ru