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.
Történet 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: Betűtípus-érzékenység: Minden alkalmazás saját betűtípust állíthasson be. Átméretezhető ablakok: Minden ablak rendelkezzen átméretezés-gombbal, mellyel testreszabható a mérete. Rugalmasság: Minden elem megváltoztatható legyen egyéni ízlésnek megfelelően. Billentyűzet-vezérlés: Minden funkcionalitással rendelkező elem (widget) kezelhető legyen egér mellett billentyűzetről is. Rendszerintegráció: Minden programnak legyen ARexx portja és legyen gombnyomásra ikonná kicsinyíthető. Alkalmazkodóképesség: Minden alkalmazás megjelenése alkalmazkodjon a képernyő-környezethez (screen).Stuntzi, S: MUI User Documentation. 1997
Licenc 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.
Alkalmazás 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.Stuntzi, S: MUI Programmer Documentation. 1997
Jelenleg mintegy 70 beépített MUI osztály (classes), továbbá számos harmadik feles osztály áll rendelkezésre.
Példa
// 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.
Fontosabb megvalósítások A MUI ablak-eszköztár (widget) legfontosabb alkalmazási példái:
Aladdin4D - 3D renderelő/animációs alkalmazás Ambient - grafikus asztali környezet MorphOS-re AmIRC - IRC kliens Digital Universe - Planetárium emulációs szoftver IBrowse - webböngésző Odyssey Web Browser - webböngésző PageStream - kiadványszerkesztő program SimpleMail - email kliens Voyager - webböngésző YAM - email kliens
Egyéb GUI eszközkészletek 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 fejlesztettekhttps://en.wikipedia.org/wiki/ReAction_GUI) 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 GadToolshttps://wiki.amigaos.net/wiki/GadTools_Library, de Workbench 1.3 alá létezik belőle backport.http://aminet.net/package/dev/misc/gt34_1
További GUI eszközkészletek:http://www.amigazen.com/toolkit/frameworks.html Tritonhttp://aminet.net/package/util/libs/tri14usr BGUIhttp://aminet.net/package/dev/gui/bgui A++http://aminet.net/package/dev/c/APPSource AppShell
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.
Színpaletta kiterjesztés 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
Jegyzetek
További információk MUI honlap MUI fejlesztői változatok MUI útmutató
Kategória:Amiga API-k