Magic User Interface

Magic User Interface

FejlesztőStefan Stuntz
(1992-2006)
Thore Böckelmann,
Jens Maus (2006-)
Első kiadás1993
Legfrissebb stabil kiadás5.0
(2021. augusztus 31. (2021-08-31))
Operációs rendszerAmigaOS, AmigaOS 4, MorphOS
PlatformAmiga
Kategóriawidget toolkit
Licencshareware
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.

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:

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.

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:

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 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.

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 14900025559123175170255
Green 149000255103123175144169
Blue 149000255162123175124151

Jegyzetek

  1. 1 2 3 4 "Magic User Interface". sasg.com (angol nyelven). Hozzáférés: 2024. augusztus 26.
  2. ↑ "MUI AmigaOS Development Site". GitHub (angol nyelven). Hozzáférés: 2024. augusztus 28.
  3. ↑ "MUI 5.0-2017R1 for AmigaOS4/PPC and AmigaOS3/m68k released". Amiga.org (angol nyelven). Hozzáférés: 2024. augusztus 28.
  4. 1 2 Grzegorz Kraszewski. "Magic User Interface Programming". MorphZone (angol nyelven). Hozzáférés: 2024. augusztus 28.
  5. ↑ "Zune Application Development Manual -- Introduction". aros.sourceforge.net (angol nyelven). Hozzáférés: 2024. augusztus 28.
  6. ↑ Steven Solie; et al. (2025. január 26.). "GadTools Gadgets - AmigaOS Documentation Wiki". AmigaOS Documentation Wiki (angol nyelven). amigaos.net, Hyperion Entertainment. Hozzáférés: 2026. július 14. {{cite web}}: Explicit use of et al. in: |author= (súgó)
  7. ↑ Steven Solie; et al. (2025. január 26.). "ASL Library". AmigaOS Documentation Wiki (angol nyelven). amigaos.net, Hyperion Entertainment. Hozzáférés: 2026. július 14. {{cite web}}: Explicit use of et al. in: |author= (súgó)
  8. ↑ "GUI Programming". wiki.amigaos.net (angol nyelven). Hozzáférés: 2024. szeptember 2.
  9. ↑ Stuntzi, S: MUI User Documentation. 1997
  10. ↑ "Sasg software to buy". amibay.com (angol nyelven). Hozzáférés: 2024. szeptember 2.
  11. ↑ "Magic User Interface Concepts". Sasg.com (angol nyelven). 2001. november 11. Hozzáférés: 2024. október 15.
  12. ↑ "FAQ". Amigaworld.net (angol nyelven). Hozzáférés: 2024. október 15.
  13. ↑ Stuntzi, S: MUI Programmer Documentation. 1997
  14. ↑ "Muidev wiki". GitHub (angol nyelven). Hozzáférés: 2024. október 15.
  15. ↑ https://en.wikipedia.org/wiki/ReAction_GUI
  16. 1 2 "ReAction". SourceForge.net (angol nyelven). Hozzáférés: 2024. augusztus 26.
  17. ↑ "ReBuild". SourceForge.net (angol nyelven). Hozzáférés: 2024. augusztus 26.
  18. ↑ https://wiki.amigaos.net/wiki/GadTools_Library
  19. ↑ http://aminet.net/package/dev/misc/gt34_1
  20. ↑ http://www.amigazen.com/toolkit/frameworks.html
  21. ↑ http://aminet.net/package/util/libs/tri14usr
  22. ↑ http://aminet.net/package/dev/gui/bgui
  23. ↑ http://aminet.net/package/dev/c/APPSource
  24. ↑ "GTK-MUI". SourceForge.net (angol nyelven). Hozzáférés: 2024. augusztus 26.
  25. ↑ "GTK-MUI Library". os4depot.net (angol nyelven). Hozzáférés: 2024. augusztus 26.
  26. ↑ "feelin" (angol nyelven). Hozzáférés: 2024. augusztus 26.

További információk