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.