2 puan yazan GN⁺ 2024-04-02 | Henüz yorum yok. | WhatsApp'ta paylaş

Bu tam olarak nedir?

  • Macintosh Classic "Toolbox" API'sinin büyük bir bölümünü kopyalayan bir kütüphane; tam bir uygulama değil ama birkaç basit uygulama oluşturmak için yeterli.
  • MII Apple //e emülatörüne eklenen bir özellik; özellik ekleme açısından dünya rekoruna aday projelerden biri.

Neden?

  • MII için bir UI kütüphanesine ihtiyaç vardı ve fazla bağımlılığı olmayan, "oyun benzeri" bir stile sahip olmayan bir şey isteniyordu.
  • Nuklear anlık mod UI ile başlandı, ancak bunun çok sınırlı olduğu ve özelleştirme gerektiğinde kullanışsızlaştığı düşünüldü.
  • UI yerleşim motoru tatmin edici bulunmadı ve durumu koruma vaadine rağmen pratikte durumu hash değerlerine göre tuttuğu görüldü.
  • Eskiden UI'lar zanaatkarlıkla yapılırdı, ancak bugün kararlar çoğu zaman tasarım ya da kullanılabilirlik hissi olmadan veriliyor.
  • Eldeki çeşitli parçaları kullanarak kendi kütüphanesini yapmaya başladı.

Bu kütüphane ne yapabiliyor?

  • Macintosh Toolbox'ın bazı "manager" bileşenlerine sahip ve modern sistemler gibi çalışıyor.
  • ARGB buffer ile "ekran" üzerine çizim yapmak üzere tasarlandı ve gerektiği yere kopyalanabiliyor.
  • Kütüphane, "invalid" bölgeleri takip ederek ve yalnızca gereken kısımları yeniden çizerek overdraw'u en aza indiriyor.

Özgününden farkı ne?

  • Görünüm olarak MacOS 8/9'dan yola çıkıyor ama tüm gri tonları kaldırılmış.
  • API tarafında tamamen asenkron ve özgünündeki gibi gerektiğinde pencereye ya da GrafPort'a çizim yapılamıyor.
  • Her şey mui_window veya mui_control ile oluşturuluyor.

Pencere yöneticisi

  • Pencere oluşturup çizebiliyor.
  • En fazla 15 "layer" destekliyor ve clipping gibi işlemleri yapabiliyor.

Menü yöneticisi

  • System 7/8 veya GS/OS gibi görünen menü çubuğu, menüler, onay işaretleri, klavye kısayolları vb. sağlıyor.

Kontrol yöneticisi

  • Düğmeler, onay kutuları, radyo düğmeleri, kaydırma çubukları (dikey), metin kutuları vb. sağlıyor.

Liste yöneticisi

  • Dosya adlarını göstermek için tasarlandı; yön tuşlarını, page up/down, kaydırma tekerleğini vb. işleyebiliyor.

Uyarılar

  • "İptal" ve "Tamam" düğmeleri bulunan tipik uyarılar sağlıyor.

Standart dosya

  • Dosya açma iletişim kutusu sağlıyor.

Kaynak yöneticisi

  • Kaynak yöneticisi sağlamıyor.

Bağımlılıklar neler?

  • Harici bağımlılık olarak yalnızca libpixman var.
  • libpixman, libcg, stb_truetype.h, stb_ttc.h vb. kullanılıyor.

Nasıl derlenir?

  • Basit bir Makefile kullanılıyor; kök dizinde make komutuyla kütüphane ile test/demo/örnekler derlenebiliyor.

Nasıl kullanılır?

  • En iyi yöntem, mui_shell.c ve mui_widgets_demo.c dosyalarını değiştirerek kullanmak.
  • mui_widgets_demo.so bir eklenti olarak yükleniyor ve değişiklik algılandığında otomatik olarak yeniden yükleniyor.

SSS!

  • Karanlık mod, temalar, saydam pencereler, küp efektleri, menü yapışkanlığı, en yeni trend araçlar veya framework'ler, yeni dil binding'leri, Wayland desteği vb. sunulmuyor.

GN⁺ görüşü

  • Bu kütüphane, klasik Macintosh UI'sini modern sistemlere uyarlayan ilgi çekici bir proje. Geliştiricilerde geçmiş UI tasarımlarına dair nostalji uyandırabilir.
  • Asenkron bir UI kütüphanesi, modern uygulama geliştirme için daha uygun ve bu kütüphane de böyle modern bir yaklaşımı benimsiyor.
  • Özellikle kaynak verimliliğine önem veren geliştiriciler için faydalı olabilir. Overdraw'u azaltması ve yalnızca gereken kısmı yeniden çizmesi, performans optimizasyonuna yardımcı olabilir.
  • Ancak karanlık mod veya tema desteği gibi modern özellikler sunmadığı için tüm geliştiricilerin ihtiyaçlarını karşılamayabilir.
  • Benzer işlevler sunan modern UI kütüphaneleri arasında Qt, GTK veya Electron gibi framework'ler bulunuyor; bunlar daha geniş özellik ve destek sunuyor.

Henüz yorum yok.

Henüz yorum yok.