çerçevenin son deneysel sürümü GTK 4 için planlanan tüm özellikleri uygulayan GTK 4 şubesi, uygulama geliştiricilerine birkaç yıl boyunca, değiştirme korkusu olmadan kullanılabilecek istikrarlı ve desteklenen bir API sağlamaya çalışan yeni bir geliştirme sürecinin parçası olarak geliştirilmektedir. Bir sonraki GTK şubesindeki API değişiklikleri nedeniyle uygulamaları her altı ayda bir yeniden yazın. GTK 4'ün yıl sonundan önce piyasaya sürülmesi planlanıyor.
En çok в şunları not edebilirsiniz:
- Kısıtlamalara dayalı olarak elemanları yerleştirme yöntemi (), burada alt öğelerin konumu ve boyutu, kenarlara olan mesafeye ve diğer öğelerin boyutuna göre belirlenir.
- GTK widget'larında kullanılan yoğun kaynak kullanan CSS öğelerinin çoğu için gölgelendiriciler uygulayan, Vulkan grafik API'sini temel alan bir oluşturucu.
- bütünleşme (GTK Scene Kit), OpenGL ve Vulkan aracılığıyla grafik sahneler oluşturma özelliğine sahiptir.
- Oluşturma organizasyonu revize edildi - bir arabelleğe çıktı yerine, artık çıktının OpenGL kullanılarak GPU tarafından verimli bir şekilde işlenen, yüksek seviyeli işlemler ağacı şeklinde düzenlendiği oluşturma düğümlerine dayalı bir model kullanılıyor ve Vulkan.
- giriş odağı değişikliklerinin esnek bir şekilde ele alınması için.
- Giriş olaylarını yönlendirirken alt pencere ihtiyacını ortadan kaldıran modernleştirilmiş bir olay dağıtım modeli. Yeni bir model uygulama ihtiyacı, animasyon efektlerinin daha aktif kullanımıyla ilişkilidir; bunun oluşturulması, görünür öğelerin düzeni değiştirilmeden ve buna göre bir alt pencere olmadan yapılmalıdır.
- GDK API, Wayland protokolünün ve ilgili kavramların kullanılması dikkate alınarak yeniden tasarlandı. X11 ve Wayland tabanlı özellikler taşındı .
- GtkMenu, GtkMenuBar ve GtkToolbar sınıflarının kaldırılması da dahil olmak üzere, GMenu ve açılır menülere dayalı seçenekler lehine API'de büyük bir temizlik gerçekleştirildi.
- GtkTextView ve diğer giriş widget'larında yerleşik bir geri alma yığını bulunur.
- Kendi görüntüleme yüzeyine sahip olan ve üst widget'lara bağlanmadan birinci düzeyde ayrı olarak çalışabilen widget'lar için yeni bir GtkNative sınıfı eklendi.
- GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView ve bir Emoji görüntüleme widget'ı dahil olmak üzere yeni widget'lar eklendi.
- Widget'ların geliştirilmesi için, görünür alanın boyutuna bağlı olarak elemanların düzenini kontrol etmeye yönelik bir sistemin uygulanmasıyla yeni bir GtkLayoutManager nesnesi tanıtıldı. GtkLayoutManager, GtkBox ve GtkGrid gibi GTK kapsayıcılarındaki alt özelliklerin yerini alır.
- Olay işleme basitleştirildi ve artık yalnızca giriş için kullanılıyor. Geri kalan olaylar ayrı sinyallerle değiştirilir; örneğin, çıkış olayları yerine "GdkSurface::render" sinyali önerilir ve yapılandırma olayları yerine "GdkSurface::size-changed" sunulur.
- Düzen katmanlarını sıralamaya gerek kalmadan herhangi bir yerde, herhangi bir boyutta çizilebilen nesneleri temsil eden yeni bir soyutlama katmanı GdkPaintable eklendi.
- Broadway arka ucu, GTK kitaplığının çıktısının bir web tarayıcı penceresinde oluşturulmasına izin verecek şekilde yeniden yazıldı.
- Sürükle ve Bırak işlemlerinin gerçekleştirilmesiyle ilişkili API, önerilen ayrı GdkDrag ve GdkDrop nesneleri de dahil olmak üzere yeniden tasarlandı.
Önceki test sürümüne kıyasla iyileştirmeler:
- Erişilebilirlik API'sinin engelli kişilere yönelik eski uygulaması kaldırıldı ve yerini spesifikasyona dayalı yeni bir sürüm aldı ve GtkAccessible widget'ı.
- Düzenlenebilir etiketler (GtkEditableLabel) için destek eklendi.
- Yer işaretlerini (GtkBookmarkList), dizeleri (GtkStringList) ve seçim bloklarını (GtkBitset) görüntülemek için yeni liste modelleri önerildi.
- GtkTreeView widget'ı hücreleri düzenleme özelliğine sahiptir.
- GtkGridView ve GtkListView'de kaydırma uygulaması iyileştirildi, otomatik kaydırma ve otomatik genişletme desteği eklendi.
- GtkWidget, çeşitli eylemlerin işlenmesini önemli ölçüde hızlandırır.
- GtkFilterListModel ve GtkSortListModel'e artımlı kaydırma ve filtreleme desteği eklendi.
- Inspector, liste modellerini inceleme desteği ve nesneler arasında doğrudan gezinme yeteneği ekledi.
- GDK'da kaydırma geçmişi kaydedildi, GdkDevice API'si temizlendi ve cihazların ana ve bağımlı olarak ayrılması durduruldu.
- MacOS için yeni GDK arka ucu eklendi.
- Yeni bir GDK oluşturma arka ucu , OpenGL ES çağrılarını OpenGL, Direct3D 9/11, Desktop GL ve Vulkan'a çevirmek için.
Kaynak: opennet.ru
