GTK 3.96, GTK 4 ning eksperimental versiyasi chop etildi

10 oydan keyin o'tmish sinov versiyasi taqdim etildi GTK 3.96, GTK 4 ning yaqinlashib kelayotgan barqaror versiyasining yangi eksperimental versiyasi. GTK 4 filiali dastur ishlab chiquvchilarga bir necha yil davomida qo‘rquvsiz foydalanish mumkin bo‘lgan barqaror va qo‘llab-quvvatlanadigan API bilan ta’minlashga harakat qiluvchi yangi ishlab chiqish jarayonining bir qismi sifatida ishlab chiqilmoqda. keyingi GTK filialida API o'zgarishi sababli dasturni har olti oyda qayta yozish kerakligi. GTK 4 to'liq barqarorlashtirilgunga qadar, foydalanuvchilarga taklif qilinadigan ilovalarni filial yordamida qurishda davom etish tavsiya etiladi. GTK 3.24.

asosiy o'zgartirish GTK 3.96 da:

  • APIda GSK OpenGL va Vulkan orqali grafik sahnalarni ko'rsatishni ta'minlaydigan (GTK Scene Kit) xatolar ustida ish olib borildi, yangi disk raskadrovka vositasi gtk4-node-Editor tufayli aniqlash osonroq bo'ldi, bu sizga fayllarni yuklash va ko'rsatish imkonini beradi. tugunni ketma-ketlashtirilgan formatda ko'rsatish (GTK inspektorini tekshirish rejimida saqlanishi mumkin), shuningdek, turli xil backendlardan foydalanganda ko'rsatish natijalarini solishtiring;

    GTK 3.96, GTK 4 ning eksperimental versiyasi chop etildi

  • 3D o'zgartirish imkoniyatlari aylanuvchi kub kabi animatsiya effektlarini yaratishga imkon beruvchi darajaga keltirildi;

    GTK 3.96, GTK 4 ning eksperimental versiyasi chop etildi

  • To'liq qayta yozilgan Broadway GDK backend veb-brauzer oynasida GTK kutubxonasi chiqishini ko'rsatish uchun mo'ljallangan. Eski Broadway ilovasi GTK 4 da taklif qilingan renderlash usullariga mos kelmadi (buferga chiqarish o'rniga endi u render tugunlariga asoslangan modeldan foydalanadi, bu erda chiqish yuqori darajadagi operatsiyalar daraxti ko'rinishida tuzilgan, OpenGL va Vulkan yordamida GPU tomonidan samarali qayta ishlanadi).
    Yangi Broadway opsiyasi brauzerda interfeysni ko'rsatish uchun render tugunlarini CSS uslublari bilan DOM tugunlariga aylantiradi. Har bir yangi ekran holati oldingi holatga nisbatan DOM daraxtining o'zgarishi sifatida qayta ishlanadi, bu esa masofaviy mijozga uzatiladigan ma'lumotlar hajmini kamaytiradi. 3D transformatsiyalar va grafik effektlar CSS transform xususiyati orqali amalga oshiriladi;

  • GDK Wayland protokolini hisobga olgan holda ishlab chiqilgan API-larni amalga oshirishda davom etmoqda va X11-ga asoslangan API-larni tozalash yoki ularni alohida X11 backend-ga ko'chirish. Bolalar sirtlari va global koordinatalardan foydalanishdan voz kechish bo'yicha ishlarda muvaffaqiyatlar mavjud. GDK-dan GDK_SURFACE_SUBSURFACE qo'llab-quvvatlashi olib tashlandi;
  • Drag-and-Drop operatsiyalarini bajarish bilan bog'liq kodni qayta tiklash, shu jumladan taklif qilingan alohida GdkDrag va GdkDrop ob'ektlari davom etdi;
  • Voqealarni boshqarish soddalashtirildi va endi faqat kiritish uchun foydalaniladi. Qolgan hodisalar alohida signallar bilan almashtiriladi, masalan, chiqish hodisalari oʻrniga “GdkSurface::render” signali, konfiguratsiya hodisalari oʻrniga – “GdkSurface::size-changed”, xaritalash hodisalari oʻrniga – “GdkSurface: :mapped”, gdk_event_handler_set() o‘rniga - “GdkSurface::event”;
  • Wayland uchun GDK backend GtkSettings sozlamalariga kirish uchun portal interfeysini qo'llab-quvvatladi. Kirish usullari bilan ishlash uchun matn kiritish-barqaror-v3 protokoli kengaytmasini qo'llab-quvvatlash taklif qilingan;
  • Vidjetlarni ishlab chiqish uchun yangi GtkLayoutManager ob'ekti ko'rinadigan maydonning joylashuviga qarab elementlarning joylashishini boshqarish tizimini joriy qilish bilan tanishtirildi. GtkLayoutManager GtkBox va GtkGrid kabi GTK konteynerlaridagi bolalar xususiyatlarini almashtiradi. Bir nechta tayyor maket menejerlari taklif etiladi: bitta yordamchi elementga ega oddiy konteynerlar uchun GtkBinLayout, chiziqli tekislangan ichki elementlar uchun GtkBoxLayout, to'liq chiziqqa kichik elementlarni tekislash uchun GtkGridLayout, C ichki elementlarning o'zboshimchalik bilan joylashishi uchun GtkFixedLayout, translatustom elementiga asoslangan an'anaviy GtkFixedLayout. ishlov beruvchilar;
  • GtkAssistant, GtkStack va GtkNotebook vidjetlariga ichki elementlarning sahifalarni koʻrsatishi uchun hammaga ochiq obʼyektlar qoʻshildi, bu vidjetlarning Layout bilan bogʻliq boʻlmagan ichki xususiyatlari oʻtkaziladi. Mavjud barcha yordamchi xususiyatlar odatiy xususiyatlarga, tartib xususiyatlariga aylantirilgan yoki sahifa ob'ektlariga ko'chirilganligi sababli, GtkContainer'dan bolalar xususiyatlarini qo'llab-quvvatlash butunlay olib tashlandi;
  • GtkEntry asosiy funksiyasi yangi GtkText vidjetiga ko‘chirildi, u shuningdek, GtkEditable tahrirlash interfeysini ham o‘z ichiga oladi. Mavjud barcha ma'lumotlarni kiritish pastki sinflari yangi GtkText vidjeti asosida GtkEditable ilovalari sifatida qayta ishlangan;
  • Parolni kiritish shakllari uchun yangi GtkPasswordEntry vidjeti qo‘shildi;
  • GtkWidgets CSS yoki gtk_widget_allocate argumenti orqali ko'rsatilgan chiziqli o'zgartirish usullaridan foydalangan holda GskTransform-ga bolalar elementlarini o'zgartirish imkoniyatini qo'shdi. Belgilangan xususiyat allaqachon GtkFixed vidjetida qo'llaniladi;
  • Roʻyxat yaratishning yangi modellari qoʻshildi: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel va GtkSingleSelection. Kelajakda biz GtkListView-ga ro'yxat modellarini qo'llab-quvvatlashni rejalashtirmoqdamiz;
  • GtkBuilder identifikator bo'yicha havolalardan foydalanish o'rniga ob'ekt xususiyatlarini mahalliy (inline) sifatida o'rnatish imkoniyatini qo'shdi;
  • UI fayllarini GTK 4 dan GTK 3 ga aylantirish uchun gtk4-builder-tool-ga buyruq qo'shildi;
  • Asosiy mavzular, jadvalli menyular va kombinatsiyalangan qutilarni qo'llab-quvvatlash to'xtatildi. GtkInvisible vidjeti olib tashlandi.

    Manba: opennet.ru

a Izoh qo'shish