Sebenarnya ini apa?
- Pustaka yang mereplikasi banyak bagian dari API Macintosh Classic "Toolbox"; bukan implementasi lengkap, tetapi cukup untuk membuat beberapa aplikasi sederhana.
- Sebuah tambahan untuk emulator MII Apple //e, dan merupakan salah satu proyek yang tampak menantang rekor dunia dalam hal penambahan fitur.
Mengapa?
- Dibutuhkan pustaka UI untuk MII, dengan sedikit dependensi dan tanpa gaya yang terasa seperti 'game'.
- Awalnya dimulai dengan UI mode langsung Nuklear, tetapi terasa sangat terbatas dan merepotkan saat perlu kustomisasi.
- Mesin tata letak UI tidak memuaskan, dan meskipun menjanjikan state yang dipertahankan, praktiknya state itu disimpan berdasarkan nilai hash.
- Dulu, UI dibuat dengan sentuhan craftsmanship, tetapi sekarang sering kali diputuskan tanpa rasa terhadap desain atau kegunaan.
- Karena sudah memiliki berbagai komponennya, pengembang mulai membuat pustakanya sendiri.
Apa yang bisa dilakukan pustaka ini?
- Memiliki beberapa 'manager' dari Macintosh Toolbox, dan bekerja seperti sistem modern.
- Dirancang untuk menggambar ke 'layar' dengan buffer ARGB, lalu dapat disalin ke tempat yang diperlukan.
- Pustaka ini melacak area yang 'invalid' dan meminimalkan overdraw dengan menggambar ulang hanya bagian yang diperlukan.
Apa bedanya dengan yang asli?
- Dari sisi tampilan, dimulai dari MacOS 8/9 tetapi semua nuansa abu-abunya dihilangkan.
- Dari sisi API, semuanya sepenuhnya asinkron, dan tidak bisa menggambar ke window atau GrafPort kapan pun diperlukan seperti aslinya.
- Semuanya tersusun dari mui_window atau mui_control.
Window Manager
- Dapat membuat dan menggambar window.
- Memiliki hingga 15 'layer' dan dapat melakukan clipping, dan sebagainya.
Menu Manager
- Menyediakan menu bar, menu, tanda centang, pintasan keyboard, dan lain-lain yang terlihat seperti System 7/8 atau GS/OS.
Control Manager
- Menyediakan tombol, checkbox, radio button, scrollbar (vertikal), text box, dan sebagainya.
List Manager
- Dirancang untuk menampilkan nama file, serta dapat menangani tombol panah, Page Up/Down, scroll wheel, dan sebagainya.
Alert
- Menyediakan alert khas dengan tombol 'Batal' dan 'OK'.
Standard File
- Menyediakan dialog untuk membuka file.
Resource Manager
- Tidak menyediakan Resource Manager.
Apa dependensinya?
- Satu-satunya dependensi eksternal adalah libpixman.
- Menggunakan libpixman, libcg, stb_truetype.h, stb_ttc.h, dan sebagainya.
Bagaimana cara build-nya?
- Menggunakan Makefile sederhana; di direktori root, pustaka beserta test/demo/sample dapat dibangun dengan perintah
make.
Bagaimana cara memakainya?
- Paling baik digunakan dengan memodifikasi mui_shell.c dan mui_widgets_demo.c.
- Memuat mui_widgets_demo.so sebagai plugin dan otomatis memuat ulang saat perubahan terdeteksi.
FAQ!
- Tidak menyediakan dark mode, tema, window transparan, efek kubus, menu yang sticky, alat atau framework modern yang sedang tren, binding bahasa baru, dukungan Wayland, dan sebagainya.
Pendapat GN⁺
- Pustaka ini adalah proyek menarik yang menciptakan ulang UI Macintosh klasik agar sesuai dengan sistem modern. Ini bisa membangkitkan nostalgia terhadap desain UI masa lalu bagi para pengembang.
- Pustaka UI asinkron lebih cocok untuk pengembangan aplikasi modern, dan pustaka ini mengambil pendekatan modern tersebut.
- Pustaka ini bisa sangat berguna terutama bagi pengembang yang mengutamakan efisiensi sumber daya. Kemampuan meminimalkan overdraw dan menggambar ulang hanya bagian yang diperlukan dapat membantu optimasi performa.
- Namun, karena pustaka ini tidak menyediakan fitur modern seperti dark mode atau dukungan tema, pustaka ini mungkin tidak memenuhi kebutuhan semua pengembang.
- Pustaka UI modern dengan fungsi serupa mencakup framework seperti Qt, GTK, atau Electron, yang menawarkan fitur dan dukungan yang lebih luas.
Belum ada komentar.