2 poin oleh GN⁺ 2024-04-02 | Belum ada komentar. | Bagikan ke WhatsApp

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.

Belum ada komentar.