| Magic User Interface | |
| Fejlesztő | Stefan Stuntz (1992-2006) Thore Böckelmann, Jens Maus (2006-) |
| Első kiadás | 1993 |
| Legfrissebb stabil kiadás | 5.0 (2021. augusztus 31.) |
| Operációs rendszer | AmigaOS, AmigaOS 4, MorphOS |
| Platform | Amiga |
| Kategória | widget toolkit |
| Licenc | shareware |
| A Magic User Interface weboldala | |
A Magic User Interface (röviden: MUI) egy Stefan Stuntz által 1993-ban létrehozott objektumorientált keretrendszer grafikus felhasználói felületek (GUI) létrehozására és működtetésére. A felhasználó az alkalmazás szinte minden kinézeti elemét testreszabhatja. A szoftver eredetileg AmigaOS-re készült és kváziszabvánnyá vált Amigán. PowerPC processzorokon futó portja készült MorphOS alá, továbbá klónja Zune néven AROS operációs rendszerre.
Az Amiga rendelkezik a GUI megjelenítést támogató alrendszerrel, az Intuitionnel, azonban ez önmagában nehezen volt kezelhető az első időkben, mígnem a Kickstart 2.0-tól kezdődően megjelentek az olyan segédeszköz-készletek (toolkit), mint az ASL vagy a GadTools. Ezek egységesített adatstruktúrákat használtak a felületelemek és menük létrehozásához és kezeléséhez, az Intuition-höz hasonlóan, és vagy nem, vagy csak nagyon nehézkesen voltak bővíthetők. A GadTools kimenete kifejezetten merev és kötött volt, fix méretű és pozíciójú elemekkel, minimális skálázhatóság nélkül.
Az első igazán komoly előrelépés a Stefan Stuntz által 1992-ben fejleszteni kezdett, BOOPSI alapokon nyugvó MUI volt. A kitűzött főbb elérendő fejlesztési célok a következők voltak:
A MUI eredendően shareware szoftverként került forgalomba, azonban a korábban kiadott regisztrációs kulcsok az újabb fejlesztésű szoftververziókkal is használhatók. A teljes funkcionalitás igénybevételéhez mindenképp szükséges regisztrációs kulcs az eredeti szerzőtől.
A felhasználói interfész fejlesztési forráskód-szinten történik, GUI szerkesztő (builder) alkalmazás igénybevétele nélkül. A szoftverfejlesztő csak a GUI logikai struktúráját határozza meg, a tényleges képernyő-elrendezés futás közben alakul ki a felhasználó beállításaitól függően. Más GUI fejlesztőkészletektől eltérően a MUI fejlesztő nem határoz meg pontos koordinátákat a képernyőn a felhasználói felület objektumai számára, hanem csak az egymáshoz viszonyított relatív elhelyezkedésüket, objektum-csoportonként. A hagyományos, Intuition-alapú programozás során a fejlesztőnek a betűtípustól, az ablak-, illetve képernyőkeret szélétől függően kellett kiszámolnia egy elem pontos helyét. A MUI esetén azonban minden GUI elem mérete alkalmazkodik az őt magában foglaló ablak méreteihez. Képes a megjelenítés során automatikusan kisebb betűkészletre váltani vagy akár GUI elemeket elrejteni, ha azok számára nincs elegendő hely a képernyőn. Ilyen módon könnyen készíthető olyan felhasználói felület, mely alkalmazkodik akár kicsi, akár nagy képernyőfelbontásokon való megjelenítéshez is.
Jelenleg mintegy 70 beépített MUI osztály (classes), továbbá számos harmadik feles osztály áll rendelkezésre.
// Példa alkalmazás:
#include <libraries/mui.h>
#include <proto/muimaster.h>
ApplicationObject,
SubWindow, WindowObject,
WindowContents, VGroup,
Child, TextObject, MUIA_Text_Contents, "Hello World!", End,
End,
End,
End;
A példa egy kis MUI alkalmazást hoz létre, mely kiírja a képernyőre a "Hello World!" szöveget. Lehetőség van más BOOPSI-alapú GUI eszköztár objektumok beágyazására is a MUI alkalmazásba.
A MUI ablak-eszköztár (widget) legfontosabb alkalmazási példái:
Amigára számos GUI eszközkészlet létezik.
A legszélesebb körben a MUI használatos, míg a másik populáris, a ReAction (ill. eredetileg ClassAct, amit még a Workbench 2.0-hoz fejlesztettek) az AmigaOS 3.5-3.9, az AmigaOS 3.2.x, továbbá az AmigaOS 4 része.
Workbench 2.0-tól kezdődően elérhető a rendszer saját GUI toolkitje, a GadTools, de Workbench 1.3 alá létezik belőle backport.
További GUI eszközkészletek:
Létezik egy projekt, mely a GTK-hoz fejleszt egy MUI csomagoló könyvtárat (wrapper), és amely lehetővé teszi számos GTK-alapú szoftver gyors portolhatóságát Amigára. A legfrissebb változat AmigaOS 4-re érhető el.
Egy másik megközelítés CSS-, illetve XML-alapokon indult el és Feelin a neve. Nyílt forráskódú objektum-orientált keretrendszer és API létrehozása a cél.
A MUI négy további színnel bővítette a Workbench alapból négyszínű palettáját, mely egyenletesebb színátmeneteket, illetve árnyalást tett lehetővé. A MUI-t használó MagicWB GUI bővítmény a több színt látványosabb ikonok létrehozásához alkalmazta. A MUI 4 implementálta az áttetszőséget (alpha blending), illetve a felhasználó általi eszköztár-elem (widget) alakzat definiálhatóságának a támogatását.
| A MUI 8-színű palettája | ||||||||
|---|---|---|---|---|---|---|---|---|
| szín | ||||||||
| Red | 149 | 000 | 255 | 59 | 123 | 175 | 170 | 255 |
| Green | 149 | 000 | 255 | 103 | 123 | 175 | 144 | 169 |
| Blue | 149 | 000 | 255 | 162 | 123 | 175 | 124 | 151 |
{{cite web}}: Explicit use of et al. in: |author= (súgó){{cite web}}: Explicit use of et al. in: |author= (súgó)