Ο Jan Zahurancik, δημιουργός του AmiKit, κυκλοφόρησε το MagicMenu 3.0, μια νέα έκδοση του γνωστού menu patch για το AmigaOS, 24 χρόνια μετά την τελευταία ενημέρωση. Η έκδοση αυτή δημιουργήθηκε με τη βοήθεια AI από τον ίδιο τον Zahurancik και δείχνει πώς μπορεί να ξαναδουλευτεί ένα παλιό εργαλείο ώστε να παραμένει χρήσιμο και σήμερα. Με απλά λόγια, το MagicMenu αλλάζει τον τρόπο που εμφανίζονται και λειτουργούν τα menus στο σύστημα, δίνοντας περισσότερες επιλογές από αυτές που προσφέρει το βασικό AmigaOS.
Το MagicMenu είναι ένα utility που επεμβαίνει στα κλασικά Intuition menus του AmigaOS. Αντί να μένει κανείς στις προεπιλογές του συστήματος, μπορεί να ρυθμίσει πιο λεπτομερώς την εμφάνιση και τη συμπεριφορά των pull-down και pop-up menus.
Στην πράξη, αυτό σημαίνει ότι μπορείς να βάλεις σκιά, διαφάνεια ή εικόνα στο φόντο και να προσαρμόσεις καλύτερα το πώς ανοίγουν και πώς φαίνονται τα menus. Δεν είναι κάτι απαραίτητο για όλους, αλλά για όσους θέλουν πιο πολύ έλεγχο στο περιβάλλον του AmigaOS, είναι ένα χρήσιμο εργαλείο.
Τι αλλάζει στην έκδοση 3.0
Σύμφωνα με το changelog, η νέα έκδοση φέρνει αρκετές αλλαγές στην εμφάνιση και στη λειτουργία του προγράμματος:
- Κάθε ρύθμιση που επηρεάζει την εμφάνιση ενός menu μπορεί πλέον να οριστεί ξεχωριστά για pull-down και pop-up menus.
- Ο editor ρυθμίσεων έχει ξαναγραφτεί πλήρως σε MUI.
- Προστέθηκαν ρυθμίσεις για drop shadows με ξεχωριστό έλεγχο σε απόσταση και ένταση.
- Διορθώθηκε το γνωστό bug της διαφάνειας που άφηνε κενά στα transparent menus από το 1999.
- Βελτιώθηκε η ταχύτητα στο transparency και στο backdrop rendering.
- Διορθώθηκαν περίπου 30 ακόμη σφάλματα, hangs και memory leaks.
Νέος editor ρυθμίσεων σε MUI
Ένα από τα πιο εμφανή σημεία της έκδοσης είναι το πρόγραμμα ρυθμίσεων, το οποίο γράφτηκε από την αρχή. Πλέον βασίζεται σε MUI και παρουσιάζει τις επιλογές πιο καθαρά, με τις ρυθμίσεις για τα pull-down και pop-up menus δίπλα δίπλα.
Ο editor έχει και bubble help για κάθε ρύθμιση, ώστε να εξηγεί τι κάνει η καθεμία. Όσα πεδία δεν ισχύουν για μια συγκεκριμένη επιλογή γίνονται γκρι, κάτι που κάνει πιο εύκολο να καταλάβει κανείς τι μπορεί να αλλάξει και τι όχι.
Αν η οθόνη το υποστηρίζει, ο editor μπορεί να δείξει το ενσωματωμένο banner των 256 χρωμάτων. Αν ο χρήστης θέλει δική του εικόνα, μπορεί να βάλει ένα magicmenuprefs.pic δίπλα στο MagicMenuPrefs.
Ρυθμίσεις για σκιά, διαφάνεια και φόντο
Το MagicMenu 3.0 δίνει πιο λεπτομερή έλεγχο σε βασικά στοιχεία της εμφάνισης.
Στη σκιά, για παράδειγμα, ο χρήστης μπορεί να ορίσει:
- πόσο μακριά απλώνεται, από 1 έως 10 pixels
- πόσο σκοτεινή είναι, από 1% έως 100%
Οι ρυθμίσεις αυτές γίνονται ξεχωριστά για κάθε τύπο menu. Σε truecolor οθόνες η σκιά σκουραίνει τα πραγματικά pixels από κάτω. Σε palette screens χρησιμοποιείται ειδικό Shadow pen.
Επίσης, το background κάθε menu μπορεί να είναι:
- Χρώμα
- Διαφάνεια
- Εικόνα
- Διαφανή εικόνα
Η νέα έκδοση δίνει και ξεχωριστή ρύθμιση για το opening delay, από "κλειστό" έως 1000 milliseconds, πάλι ξεχωριστά για κάθε τύπο menu.
Σημαντικές διορθώσεις σταθερότητας
Η έκδοση 3.0 φέρνει και πολλές διορθώσεις σε προβλήματα που επηρέαζαν τη λειτουργία του προγράμματος:
- Ένα
Forbid()έμενε ενεργό μόνιμα και δεν επέστρεφε ποτέ το multitasking. - Ο renderer των menu items μπορούσε να μπει σε ατελείωτο loop.
- Η μνήμη επιστρεφόταν σε λάθος allocator.
- Static images ελευθερώνονταν λανθασμένα μέσα από memory pool.
- Η σειρά τερματισμού μπορούσε να μπλοκάρει ξένες διεργασίες πάνω σε semaphores που καταστρέφονταν.
- Οι πίνακες remap των χρωμάτων διαβάζονταν εκτός ορίων.
- Το
PUBSCREENtooltype δε λειτουργούσε σωστά, γιατί το παράθυρο προτιμήσεων αγνοούσε την οθόνη που του δινόταν. - Το opening delay εφαρμοζόταν μόνο στο πρώτο menu μιας ακολουθίας.
- Οι σκιές σχεδιάζονταν στη μισή ένταση στο distance 1.
- Ο blocking-mode renderer αγνοούσε το Shadow pen.
- Το
MMPORTδιάβαζε πέρα από το τέλος της δομής σε 2.x peers. - Ένα πράσινο χρωματικό στοιχείο ελεγχόταν με το όριο του μπλε.
- Το multicolour look χανόταν όταν δεν μπορούσε να δεσμευτεί μόνο το Shadow pen.
- Πολλά controls εμφανίζονταν γκρι ενώ ήταν ακόμα σε χρήση ή ενεργά ενώ δεν είχαν πραγματική επίδραση.
Απαιτήσεις και διαθεσιμότητα
Το MagicMenu 3.0 απαιτεί:
- AmigaOS 2.04 ή νεότερο
- MUI 3.8 ή νεότερο για τον preferences editor
- οθόνη με τουλάχιστον 64 χρώματα για να εμφανίζεται το χρωματικό μέρος του editor
Η έκδοση έχει δοκιμαστεί σε AmiKit με AmigaOS 3.x, 68020 και 32-bit truecolor RTG, χωρίς crashes. Σύμφωνα με την ανακοίνωση, AGA, OCS/ECS, plain 68000 και AmigaOS 2.x δεν έχουν δοκιμαστεί ακόμη.
Το πλήρες source code της έκδοσης βρίσκεται στο GitHub repository του AmiKit, ενώ τα παλιότερα αρχεία και η ιστορία του project υπάρχουν στο https://github.com/jens-maus/magicmenu. Μπορείτε να κατεβάσετε τη νέα έκδοση από το Aminet, ή από το GitHub.